####################################################################### ####################################################################### INCLUDE = ../include CFLAGS = $(CC_OPT) # order is important for link LIBDIRS1 = ../lib/spfte.a ../lib/fte.a ../lib/cp.a LIBDIRS2 = ../lib/analysis.a ../lib/inp.a ../lib/ckt.a ../lib/ni.a \ ../lib/sparse.a XLIBDIRS = ../lib/hlp.a ../lib/plot.a LIBDIRS3 = ../lib/sced.a ../lib/misc.a LIBRARIES = $(LIBDIRS1) ../lib/dev.a $(LIBDIRS2) $(XLIBDIRS) $(LIBDIRS3) \ ../lib/$(MFB).a D_OBJS = \ ../lib/dev/bjt.o ../lib/dev/bsim1.o ../lib/dev/bsim2.o ../lib/dev/cap.o \ ../lib/dev/dio.o ../lib/dev/ind.o ../lib/dev/jfet.o ../lib/dev/jj.o \ ../lib/dev/ltra.o ../lib/dev/mes.o ../lib/dev/mos.o ../lib/dev/res.o \ ../lib/dev/src.o ../lib/dev/sw.o ../lib/dev/tra.o ../lib/dev/urc.o \ ../lib/dev/disto.o MAKEFS1 = $(LIBDIRS1:.a=/Makefile) $(LIBDIRS3:.a=/Makefile) \ ../lib/$(MFB)/Makefile MAKEFS2 = $(LIBDIRS2:.a=/Makefile) MAKEFS3 = $(XLIBDIRS:.a=/Makefile) MAKEFS4 = $(D_OBJS:.o=/Makefile) CFILES = \ nuconfig.c spconfig.c main.c multidec.c \ help.c proc2mod.c scedstub.c spiced.c xeditor.c stupid:: @cat message ####################################################################### ####### Dependencies in this directory ################################ depend:: @$(DEPEND_PROG) -I$(INCLUDE) $(INCX) $(CFILES) ####################################################################### ####### Create the config files ####################################### preamble:: @echo char *Spice_Exec_Dir = \"$(SPICE_EXEC_DIR)\"\; @echo char *Spice_Lib_Dir = \"$(SPICE_LIB_DIR)\"\; @echo char Spice_OptChar = \'$(OPT_CHAR)\'\; @echo char *Def_Editor = \"$(DEFAULT_EDITOR)\"\; @echo int AsciiRawFile = $(ASCII_RAWFILE)\; @echo char *Bug_Addr = \"$(BUG_ADDR)\"\; @echo char *Spice_Host = \"$(SPICE_HOST)\"\; @echo char *Spiced_Log = \"$(SPICED_LOG)\"\; @echo char Spice_Version[ ] = \"$(VERSION)\"\; @echo char Spice_Notice[ ] = \"$(SPICE_NOTICE)\"\; @echo char Spice_Build_Date[ ] = \"$(DATE)\"\; devs: $(DEVICES) $(ANALYSES) $(DEVICES):: @echo \#define DEV_$@ $(ANALYSES):: @echo \#define AN_$@ spconfig:: $(MAKE) preamble > spconfig.c $(MAKE) devs >> spconfig.c cat sconfig.c >> spconfig.c nuconfig:: $(MAKE) preamble > nuconfig.c cat nconf.c >> nuconfig.c ####################################################################### ####### Executable targets ############################################ TARGETS = jspice3 nutmeg help multidec proc2mod spiced xeditor all: $(TARGETS) jspice3: smain.o spconfig.o xeditor.o $(LIBRARIES) $(CC) -o jspice3 smain.o spconfig.o $(LIBRARIES) xeditor.o \ $(LIBX) $(LDFLAGS) slink:: $(CC) -o jspice3 smain.o spconfig.o $(LIBRARIES) xeditor.o \ $(LIBX) $(LDFLAGS) nutmeg: nmain.o nuconfig.o scedstub.o ../lib/cp.a ../lib/fte.a \ ../lib/hlp.a ../lib/plot.a ../lib/misc.a ../lib/$(MFB).a $(CC) -o nutmeg nmain.o nuconfig.o scedstub.o ../lib/cp.a \ ../lib/fte.a ../lib/hlp.a ../lib/plot.a ../lib/misc.a \ ../lib/$(MFB).a $(LIBX) $(LDFLAGS) nlink:: $(CC) -o nutmeg nmain.o nuconfig.o scedstub.o ../lib/cp.a \ ../lib/fte.a ../lib/hlp.a ../lib/plot.a ../lib/misc.a \ ../lib/$(MFB).a $(LIBX) $(LDFLAGS) help: help.o scedstub.o ../lib/hlp.a ../lib/cp.a ../lib/misc.a \ ../lib/plot.a ../lib/$(MFB).a $(CC) -o help help.o scedstub.o ../lib/hlp.a ../lib/cp.a \ ../lib/misc.a ../lib/plot.a ../lib/$(MFB).a $(LIBX) $(LDFLAGS) multidec: multidec.o ../lib/sparse.a ../lib/misc.a $(CC) -o multidec multidec.o ../lib/sparse.a ../lib/misc.a $(LDFLAGS) proc2mod: proc2mod.o ../lib/cp.a ../lib/inp.a ../lib/misc.a $(CC) -o proc2mod proc2mod.o ../lib/cp.a ../lib/inp.a ../lib/misc.a \ $(LDFLAGS) spiced: spiced.o ../lib/misc.a $(CC) -o spiced spiced.o ../lib/misc.a $(LDFLAGS) xeditor: xeditor_.o $(CC) -o xeditor xeditor_.o $(LIBX) $(LDFLAGS) ####################################################################### ####### Recursively generate libraries ################################ $(LIBRARIES):: bsd_make_bug cd $(@:.a=); $(MAKE) # won't recurse without this! bsd_make_bug: ####################################################################### ####### Object file targets ########################################### nmain.o: main.c $(CC) $(CFLAGS) -I$(INCLUDE) -c main.c -o nmain.o smain.o: main.c $(CC) $(CFLAGS) -I$(INCLUDE) -DSIMULATOR -c main.c -o smain.o help.o: help.c Makefile $(CC) $(CFLAGS) -I$(INCLUDE) $(INCX) $(INTERFACE_OPTS) \ -DSPICE_HELP=\"$(SPICE_LIB_DIR)/helpdir\" -c $*.c xeditor_.o: xeditor.c $(CC) $(CFLAGS) -DSPICE_MAKE -DSTAND_ALONE $(INTERFACE_OPTS) \ -I$(INCLUDE) $(INCX) -c -o xeditor_.o xeditor.c xeditor.o: xeditor.c $(CC) $(CFLAGS) -DSPICE_MAKE $(INTERFACE_OPTS) -I$(INCLUDE) \ $(INCX) -c xeditor.c .c.o: $(CC) $(CFLAGS) -I$(INCLUDE) -c $*.c ####################################################################### ####### Clean up ###################################################### clean:: -rm -f *.o *.exe errs jspice3 nutmeg help multidec proc2mod \ spiced xeditor spconfig.c nuconfig.c -rm -f ../lib/*.a -rm -f $(LIBDIRS1:.a=/*.o) -rm -f $(LIBDIRS2:.a=/*.o) -rm -f $(LIBDIRS3:.a=/*.o) -rm -f $(XLIBDIRS:.a=/*.o) -rm -f ../lib/dev/*.o -rm -f ../lib/$(MFB)/*.o -rm -f $(D_OBJS:.o=/*.o) -rm -f ../include/config.h -rm -f ../../errs realclean:: -rm -f *.o *.exe errs jspice3 nutmeg help multidec proc2mod \ spiced xeditor spconfig.c nuconfig.c Makefile -rm -f ../lib/*.a -rm -f $(LIBDIRS1:.a=/*.o) $(LIBDIRS1:.a=/Makefile) -rm -f $(LIBDIRS2:.a=/*.o) $(LIBDIRS2:.a=/Makefile) -rm -f $(LIBDIRS3:.a=/*.o) $(LIBDIRS3:.a=/Makefile) -rm -f $(XLIBDIRS:.a=/*.o) $(XLIBDIRS:.a=/Makefile) -rm -f ../lib/dev/*.o ../lib/dev/Makefile -rm -f ../lib/$(MFB)/*.o ../lib/$(MFB)/Makefile -rm -f $(D_OBJS:.o=/*.o) -rm -f $(D_OBJS:.o=/Makefile) -rm -f ../../conf/config* -rm -f ../../conf/mk* -rm -f ../include/config.h -rm -f ../../errs