# # $Id: makefile.tc,v 1.8 2002/03/07 16:20:15 lhecking Exp $ # # GNUPLOT Makefile for Borland C++ 3.x # # copy this file to the 'src' directory, cd into there, and # make -fmakefile.tc # # uses Borland proprietary overlay manager # Modified from the TurboC makefile by Maurice Castro # The compile and link includes debug flags. Take them out if you # do not want them included (-y -v -M, /m /s /v /l) # # the makefile no longer depends on a linker options file. # this file will be created as needed. (AL 07/17/92) # # The compiler commands lines have become too long so I # modified the make file to use an options file to store $(CFLAGS) # (ALM 08/08/94) # # You will need to edit term.h to not include some of the # terminal types which you are not going to use, otherwise you will get a # message about too much global data defined in term.c. A working example # is 'config/term_pc.h'. # # directory names, like for use with makefile.all: T=..\\term\\ D=..\\docs\\ M=..\\demo\\ # where to place gnuplot.gih helpfile HELPFILE = gnuplot.gih # location of Turbo C compiler TC = d:\bc31 #TC = c:\tc # name of C compiler CC = bcc #CC = tcc # location of TLINK.EXE and TCC.EXE or BCC.EXE BIN = $(TC)\bin\\ #BIN = # location of BGI files, # change this line if not in TC directory, i.e. $(TC)\bgi BGI = $(TC)\bgi # location of bgiobj.exe tool - convertion of BGI to a linkable OBJ file. BGIOBJ = $(TC)\bgi\bgiobj #BGIOBJ = # location of the system libraries LIB = $(TC)\lib\\ # Super VGA support: name and location of the SuperVGA driver SVGA_BGI = d:\bc\bgi\svga256.bgi # the memory model to use (l = large code, large data; h = huge) MODEL = l # -c means don't link, -f means emulate 8087 if not present # -m? says which model to use # -M means produce link map # -y means include line numbers for debugger # -v means include debug info # -w- means ignore warnings and do not report them # -DREADLINE to use the history/line editing capability. If you want this # capability add -DREADLINE to CFLAGS # -DLITE means no hiddenline removal to conserve memory # -Z -2 -3 -G -O are optimization flags (-2 produces 286 only code) #CFLAGS1 = -Ff=256 -c -f -m$(MODEL) -w- -Z -2 -G -O -n. # HBB: specialise on '386 or higher, and take '-c' out, so # the flags can be used for doc2xxx and bf_test as well: CFLAGS1 = -Ff=256 -f -m$(MODEL) -w- -Z -3 -f287 -d -G -n. -v -y #CFLAGS2 = -I$(TC)\include -DLITE -DMSDOS -DPC -DREADLINE -DHAVE_STRNICMP # HBB: try without -DLITE, to activate hidden-lining (for trying) CFLAGS2 = -I$(TC)\include -DMSDOS=1 -DPC -DPROTOTYPES -DREADLINE=1 -DHAVE_GETCWD -DHAVE_STRNICMP -DHAVE_STRINGIZE CFLAGS3 = -DHAVE_SLEEP -DEXTERN_ERRNO -DHAVE_STRING_H -DHAVE_VALUES_H # separate set of FLAGS (both CFLAGS and LDFLAGS for the doc2xxx tools: DOC2XXX_FLAGS = -I$(D) -I$(T) @cflags.tc -ml -L$(TC)\lib TERMFLAGS = # With Overlay Support OVLY1 = -Y OVLY2 = -Yo OVERLIB = $(LIB)overlay SLASHO = /o ODASH = /o- # Without Overlay Support #OVLY1 = #OVLY2 = #OVERLIB = #SLASHO = #ODASH = OBJ1 = alloc.obj binary.obj bitmap.obj command.obj contour.obj datafile.obj OBJ2 = dynarray.obj eval.obj fit.obj graph3d.obj graphics.obj help.obj time.obj OBJ3 = hidden3d.obj internal.obj interpol.obj matrix.obj misc.obj parse.obj OBJ4 = plot.obj plot2d.obj plot3d.obj readline.obj save.obj scanner.obj OBJ5 = set.obj show.obj specfun.obj standard.obj stdfn.obj tables.obj term.obj OBJ6 = history.obj unset.obj util.obj util3d.obj variable.obj version.obj # uncomment svgaf.obj if you wish to include Super VGA support OBJBGI= cgaf.obj egavgaf.obj hercf.obj attf.obj pc3270f.obj svgaf.obj OBJS = $(OBJ1) $(OBJ2) $(OBJ3) $(OBJ4) $(OBJ5) $(OBJ6) $(OBJBGI) CSOURCE5 = $(T)aed.trm $(T)cgi.trm $(T)dumb.trm $(T)dxy.trm \ $(T)eepic.trm $(T)epson.trm $(T)fig.trm $(T)hp26.trm \ $(T)hp2648.trm $(T)hpgl.trm $(T)hpljii.trm CSOURCE6 = $(T)impcodes.h $(T)imagen.trm $(T)object.h \ $(T)iris4d.trm $(T)kyo.trm $(T)latex.trm $(T)pc.trm CSOURCE7 = $(T)post.trm $(T)qms.trm $(T)regis.trm $(T)sun.trm \ $(T)t410x.trm $(T)tek.trm $(T)unixpc.trm $(T)unixplot.trm \ $(T)v384.trm $(T)x11.trm CSOURCE8 = contour.c specfun.c binary.c interpol.c all: cflags.tc gnuplot.exe $(HELPFILE) $(M)bf_test.exe # use linkopt.tc and cflags.tc to avoid command-line overflow gnuplot.exe: $(OBJS) linkopt.tc cflags.tc # With or without debug information (select one) $(BIN)tlink /m /s /v /l @linkopt.tc # $(BIN)tlink @linkopt.tc # create linker options file # note that when you change the model or switch overlaying, # you will have to execute 'make clean' linkopt.tc: makefile.tc echo >linkopt.tc $(LIB)C0$(MODEL) + echo >>linkopt.tc $(SLASHO) $(OBJ1) + echo >>linkopt.tc $(OBJ2) + echo >>linkopt.tc $(OBJ3) + echo >>linkopt.tc $(OBJ4) + echo >>linkopt.tc $(OBJ5) + echo >>linkopt.tc $(ODASH) $(OBJBGI) + echo >>linkopt.tc ,gnuplot,gnuplot, + echo >>linkopt.tc $(OVERLIB) + echo >>linkopt.tc $(LIB)emu + echo >>linkopt.tc $(LIB)math$(MODEL) + echo >>linkopt.tc $(LIB)c$(MODEL) + echo >>linkopt.tc $(LIB)graphics # echo >>linkopt.tc ----- # echo >>linkopt.tc this file is generated automatically. don't change it, change the makefile. # Create an options file for the C flags to avoid command line overflow # (the only way I could think of to make sure this file was up to date # and present when needed was to make all object files dependant upon # it - ugly) <- this may cause error, do make clean instead. cflags.tc: makefile.tc echo >cflags.tc $(CFLAGS1) echo >>cflags.tc $(CFLAGS2) echo >>cflags.tc $(CFLAGS3) # default rules .c.obj: $(BIN)$(CC) -c $(OVLY2) @cflags.tc $< # The default for files is to be compiled for overlaying if OVLY1 and # OVLY2 are defined. plot.c and parse.c are not suitable for overlaying. bitmap.obj: bitmap.c bitmap.h plot.h command.obj: command.c plot.h setshow.h help.h fit.h $(BIN)$(CC) -c $(OVLY2) @cflags.tc -DHELPFILE=\"$(HELPFILE)\" command.c contour.obj: contour.c plot.h eval.obj: eval.c plot.h graphics.obj: graphics.c plot.h setshow.h graph3d.obj: graph3d.c plot.h setshow.h hidden3d.obj: hidden3d.c plot.h setshow.h util3d.obj: util3d.c plot.h setshow.h fit.obj: fit.c fit.h matrix.h plot.h matrix.obj: matrix.c matrix.h fit.h help.obj: help.c plot.h help.h internal.obj: internal.c plot.h misc.obj: misc.c plot.h setshow.h help.h parse.obj: parse.c plot.h $(BIN)$(CC) -c $(OVLY1) @cflags.tc parse.c plot.obj: plot.c plot.h setshow.h $(BIN)$(CC) -c $(OVLY1) @cflags.tc plot.c readline.obj: readline.c scanner.obj: scanner.c plot.h set.obj: set.c plot.h setshow.h show.obj: show.c plot.h setshow.h $(BIN)$(CC) -c $(OVLY2) @cflags.tc -DHELPFILE="$(HELPFILE)" show.c specfun.obj: specfun.c standard.obj: standard.c plot.h stdfn.obj: stdfn.c stdfn.h interpol.obj: interpol.c plot.h setshow.h # the CSOURCE? dependencies are not up to date (but who cares) term.obj: term.c term.h plot.h set.c show.c bitmap.h $(CSOURCE5) $(CSOURCE6) $(CSOURCE7) $(BIN)$(CC) -c $(OVLY2) @cflags.tc $(TERMFLAGS) -DDEFAULTTERM="dospc" -I$(T) -I. term.c util.obj: util.c plot.h variable.obj: variable.c plot.h variable.h version.obj: version.c # convert gnuplot.doc to gnuplot.gih $(HELPFILE): doc2gih.exe $(D)gnuplot.doc doc2gih $(D)gnuplot.doc $(HELPFILE) doc2gih.exe: $(D)doc2gih.c $(D)termdoc.c $(BIN)$(CC) $(DOC2XXX_FLAGS) -edoc2gih.exe $(D)doc2gih.c $(D)termdoc.c doc2tex.exe: $(D)doc2tex.c $(BIN)$(CC) $(DOC2XXX_FLAGS) -DALL_TERM_DOC $(D)doc2tex.c $(M)bf_test.exe: bf_test.c binary.obj alloc.obj $(BIN)$(CC) -e$(M)bf_test.exe @cflags.tc -L$(TC)\lib bf_test.c binary.obj alloc.obj cd ..\demo bf_test cd ..\src # convert Borland Graphics Interface files to object for linking cgaf.obj: $(BGI)\cga.bgi $(BGIOBJ) /F $(BGI)\cga egavgaf.obj: $(BGI)\egavga.bgi $(BGIOBJ) /F $(BGI)\egavga hercf.obj: $(BGI)\herc.bgi $(BGIOBJ) /F $(BGI)\herc attf.obj: $(BGI)\att.bgi $(BGIOBJ) /F $(BGI)\att pc3270f.obj: $(BGI)\pc3270.bgi $(BGIOBJ) /F $(BGI)\pc3270 svgaf.obj: $(SVGA_BGI) $(BGIOBJ) /F $(SVGA_BGI) svgaf.obj _SVGA_driver_far SVGA_TEXT # $(OBJS): cflags.tc # this causes error message # clean target - remove all temp files, but leave executable intact # needed when changing configuration (model or overlaying) clean: del *.obj del gnuplot.map del linkopt.tc del doc2gih.exe del cflags.tc # realclean target - remove all files created by the makefile realclean: clean del gnuplot.exe del gnuplot.gih del $(M)soundfit.par del $(M)fit.log del $(M)bf_test.exe del $(M)bf_test.map del $(M)binary1 del $(M)binary2 del $(M)binary3