#include "../Ups.rules"

#define LibMiscDir ../lib
#define LibMen3    LibMiscDir/libMen3/libMen3wn.a
#define Libarg     LibMiscDir/libarg/libarg.a
#define Libmtrprog LibMiscDir/libmtrprog/libmtrprog.a
#define Libobj     LibMiscDir/libobj/libobj.a
#define Libukc     LibMiscDir/libukcprog/libukcprog.a
#define Libwn      LibMiscDir/libx11wn/libwn.a

        DEFINES = -DX11
       INCLUDES = -I. -Idevelhdrs
  SYS_LIBRARIES = $(XLIB)
LOCAL_LIBRARIES = LibMen3 Libarg Libobj Libukc Libwn Libmtrprog

  ASSRCS = as_mi.c as_vax.c as_68020.c as_mips.c as_clipper.c as_sparc.c
  ASOBJS = as_mi.o as_vax.o as_68020.o as_mips.o as_clipper.o as_sparc.o

  CISRCS = ci_parse.c ci_types.c ci_lex.c ci_stm.c ci_decl.c ci_func.c \
	   ci_util.c ci_expr.c ci_showexpr.c ci_constexpr.c ci_compile.c \
	   ci_compile_expr.c ci_opcodes.c ci_execute.c ci_init.c
  CIOBJS = ci_parse.o ci_types.o ci_lex.o ci_stm.o ci_decl.o ci_func.o \
	   ci_util.o ci_expr.o ci_showexpr.o ci_constexpr.o ci_compile.o \
	   ci_compile_expr.o ci_opcodes.o ci_execute.o ci_init.o

  DBSRCS = bp.c text.c core.c proc.c exec.c trun_ss.c trun_j.c stack.c data.c
  DBOBJS = bp.o text.o core.o proc.o exec.o trun_ss.o trun_j.o stack.o data.o

 OBJSRCS = obj_bpt.c obj_signal.c obj_misc.c obj_buildf.c obj_target.c \
	   obj_env.c obj_stack.c
 OBJOBJS = obj_bpt.o obj_signal.o obj_misc.o obj_buildf.o obj_target.o \
	   obj_env.o obj_stack.o

RESTSRCS = expr.c src.c output.c printf.c textwin.c ups.c
RESTOBJS = expr.o src.o output.o printf.o textwin.o ups.o

  STSRCS = st_stab.c st_shlib.c st_fmap.c st_parse.c st_read.c st_skim.c \
	   st_cb.c st_te.c st_lookup.c
  STOBJS = st_stab.o st_shlib.o st_fmap.o st_parse.o st_read.o st_skim.o \
	   st_cb.o st_te.o st_lookup.o

  UISRCS = ui_iploop.c ui_layout.c ui_menu.c ui_misc.c ui_src.c
  UIOBJS = ui_iploop.o ui_layout.o ui_menu.o ui_misc.o ui_src.o

 UI2SRCS = state.c reg.c cursors.c menudata.c tdr.c
 UI2OBJS = state.o reg.o cursors.o menudata.o tdr.o

  VASRCS = va_decl.c va_edit.c va_menu.c va_type.c va_val.c va_expr.c
  VAOBJS = va_decl.o va_edit.o va_menu.o va_type.o va_val.o va_expr.o

    SRCS = $(ASSRCS) $(CISRCS) $(DBSRCS) $(OBJSRCS) $(RESTSRCS) $(STSRCS) \
	   $(UISRCS) $(UI2SRCS) $(VASRCS) sccsdata.c

    OBJS = $(ASOBJS) $(CIOBJS) $(DBOBJS) $(OBJOBJS) $(RESTOBJS) $(STOBJS) \
	   $(UIOBJS) $(UI2OBJS) $(VAOBJS) sccsdata.o

 PROGRAM = ups

AllTarget($(PROGRAM))
DependTarget3($(SRCS),,)
NormalProgramTarget($(PROGRAM),$(OBJS),$(DEPLIBS),$(LOCAL_LIBRARIES),$(SYS_LIBRARIES))
InstallProgram($(PROGRAM),$(BINDIR))
InstallManPageLong(ups,$(MANDIR),$(PROGRAM))

MakeDirectories(includes,develhdrs/local develhdrs/local/obj develhdrs/mtrprog)
LinkIncludes(includes,arg.h,develhdrs/local,../../../lib/libarg)
LinkIncludes(includes,menu3.h,develhdrs/local,../../../lib/libMen3)
LinkIncludes(includes,ukcprog.h,develhdrs/local,../../../lib/libukcprog)
LinkIncludes(includes,wn.h,develhdrs/local,../../../lib/libx11wn)
LinkIncludes(includes,*.h,develhdrs/local/obj,../../../../lib/libobj)
LinkIncludes(includes,*.h,develhdrs/mtrprog,../../../lib/libmtrprog)

clean::
	$(RM) -r develhdrs
