# Hello, emacs: this is a -*- Makefile -*- # $Id: makefile.dj2,v 1.10.2.2 2008/02/23 11:20:21 mikulik Exp $ # # GNUPLOT Makefile for DJGPP version 2 on DOS # # Usage: # from the main gnuplot directory, do: # make -C src -f ../config/makefile.dj2 # # # AUTHORS : several ... including Edzer Pebesma # last mod. by Hans-Bernhard Broeker # DATE of last mod: $Date: 2008/02/23 11:20:21 $ # # # removed atari reference and added binary demo bf_test # cleaned up the building of doc and binary test files # gnuplot.gih will be built now inside the docs directory like under # UNIX. The problem is that DOS does not recognize sub-shells like # (cd dir ; do things) inside the makefile. # solution -> assume everything is done inside gnuplot main dir, under # a single DOS command process # # install target added : will copy the executable + helpfile in a given # directory ; customize it, see FINALDEST # # # here customize where you put gnuplot executable for make install # for simplicity the helpfile will be copied in the same dir. # convention used here : no trailing \ for directory names FINALDEST=c:\bin # here customize the name of the executable # exe file will be gnuplot.exe: EXENAME = gnuplot # where to place gnuplot.gih helpfile upon MAKE # note it will be built inside gnuplot\$(HELPDEST) # and eventually copied to FINALDEST when install HELPDEST =. # name of the helpfile HELPFILE =gnuplot.gih # Where to install the PostScript prologue files, relatively to the executable # gnuplot.exe GNUPLOT_PS_DIR = share/PostScript # compiler CC = gcc # include directory INCLUDE = -I. # for svga term driver # HBB NEW 20050715: you can disable the DJSVGA driver by -DDJSVGA=0 TERMFLAGS = -DDJSVGA=1 -Ic:/djgpp/contrib/grx246/include \ -DGNUPLOT_PS_DIR=\"$(GNUPLOT_PS_DIR)\" # -DHAVE_LIBGD TERMLIBS = -Lc:/djgpp/contrib/grx246/lib/dj2 -lgrx20 # -lgd # HBB : added $(OPTS) so user can # change CFLAGS easily, without having to change makefile CFLAGS = -DHAVE_CONFIG_H \ -O2 -g $(OPTS) LINKOPT = $(LDFLAGS) $(TERMLIBS) -lm -lpc # abbreviations for relative directory names (NB: target 'clean' will # still need manual change if this is changed...) T=../term/ D=../docs/ M=../demo/ O=o CSOURCE5 = $(T)ai.trm $(T)amiga.trm $(T)aed.trm \ $(T)cgi.trm $(T)djsvga.trm $(T)dumb.trm \ $(T)dxf.trm $(T)dxy.trm \ $(T)debug.trm $(T)eepic.trm $(T)epson.trm $(T)fig.trm \ $(T)hp26.trm $(T)hp2648.trm $(T)hpgl.trm \ $(T)hpljii.trm $(T)metafont.trm\ $(T)apollo.trm $(T)gpr.trm $(T)hppj.trm CSOURCE6 = $(T)impcodes.h $(T)imagen.trm $(T)next.trm $(T)object.h \ $(T)iris4d.trm $(T)kyo.trm $(T)latex.trm $(T)mif.trm \ $(T)pbm.trm $(T)pc.trm CSOURCE7 = $(T)post.trm $(T)qms.trm $(T)regis.trm $(T)sun.trm \ $(T)t410x.trm $(T)tek.trm $(T)texdraw.trm $(T)unixpc.trm \ $(T)unixplot.trm $(T)v384.trm $(T)vws.trm $(T)x11.trm $(T)xlib.trm #OBJ1 = bitmap.o command.o contour.o eval.o graphics.o graph3d.o hidden3d.o util3d.o #OBJ2 = help.o internal.o misc.o parse.o plot.o plot2d.o plot3d.o readline.o #OBJ3 = scanner.o set.o show.o specfun.o standard.o stdfn.o term.o time.o util.o #OBJ4 = version.o binary.o interpol.o fit.o matrix.o datafile.o alloc.o variable.o CSOURCES = $(CSOURCE5) $(CSOURCE6) $(CSOURCE7) #OBJS = $(OBJ1) $(OBJ2) $(OBJ3) $(OBJ4) # use makefile.all, instead: include makefile.all OBJS = $(COREOBJS) version.$(O) .c.o: $(CC) -c $(CFLAGS) $(INCLUDE) $< %:: RCS/% $(patsubst $@-noexist,$(CO) $(COFLAGS) $< $@, \ $(filter-out $@,$(firstword $(wildcard $@) $@-noexist))) all: $(EXENAME).exe $(HELPDEST)/$(HELPFILE) $(M)binary? # -s performs the coff2exe step implicitly (?) # HBB: that's plain wrong: -s means 'strip executable', # and stubify (formerly called stubify) is now always done # automatically in the link step. I changed this so you # get a debuggable gnuplot, but a stripped gnuplot.exe $(EXENAME).exe : $(OBJS) $(CC) -o $(EXENAME) $(OBJS) $(LINKOPT) objcopy --strip-all $(EXENAME) $(EXENAME).exe stubify $(EXENAME).exe config.h: ../config/config.dj2 copy ..\config\config.dj2 config.h command.o: command.c plot.h setshow.h help.h $(CC) -c $(CFLAGS) $(INCLUDE) -DHELPFILE=\"$(HELPFILE)\" command.c show.o: show.c plot.h setshow.h $(CC) -c $(CFLAGS) $(INCLUDE) -DHELPFILE=\"$(HELPFILE)\" $< term.o: term.c term.h plot.h set.c show.c bitmap.h $(CSOURCES) $(CC) -c $(CFLAGS) $(INCLUDE) $(TERMFLAGS) -I$(T) term.c $(OBJS): plot.h config.h command.o help.o misc.o: help.h command.o graphics.o graph3d.o hidden3d.o util3d.o misc.o plot.o set.o show.o term.o interpol.o: setshow.h command.o fit.o matrix.o: fit.h fit.o matrix.o: matrix.h bitmap.o term.o: bitmap.h variable.o: variable.c plot.h variable.h EMAIL=gnuplot-info@lists.sourceforge.net version.o: version.c $(CC) -c -DCONTACT=\"$(EMAIL)\" $(CFLAGS) $(INCLUDE) version.c # convert gnuplot.doc to gnuplot.gih $(HELPDEST)/$(HELPFILE): doc2gih.exe $(D)gnuplot.doc ./doc2gih.exe $(D)gnuplot.doc > $@ doc2gih.exe: $(D)doc2gih.c $(D)termdoc.c $(CSOURCES) $(CC) $(CFLAGS) $(INCLUDE) $(TERMFLAGS) -I$(T) -o $@ $(D)doc2gih.c $(D)termdoc.c # now for the demo bin $(M)binary?: bf_test.exe ./bf_test.exe copy binary? ..\demo del binary? bf_test.o: $(CC) $(CFLAGS) -c bf_test.c bf_test.exe: bf_test.o binary.o alloc.o $(CC) $(CFLAGS) bf_test.o binary.o alloc.o -lm -o $@ # now install things and create a .bat file to make things easier install: all copy $(EXENAME).exe $(FINALDEST) copy $(HELPDEST)\$(HELPFILE) $(FINALDEST) #HBB: if at all, this batch-file should only be generated by a #separate target, like 'install-bat'. Besides, it doesn't work, #as is, because DOS always executes foo.exe before even looking for #a foo.bat # del $(EXENAME).bat # echo @echo off > $(EXENAME).bat # echo SET GNUHELP= $(FINALDEST)\$(HELPFILE) >> $(EXENAME).bat # echo SET GNUPLOT= $(FINALDEST) >> $(EXENAME).bat # echo $(FINALDEST)\$(EXENAME).exe %1 %2 %3 %4 %5 %6 >> $(EXENAME).bat # echo SET GNUHELP= >> $(EXENAME).bat # echo SET GNUPLOT= >> $(EXENAME).bat # copy $(EXENAME).bat $(FINALDEST) # clean target - remove all temp files, but leave executable intact clean: del *.o rem del config.h del $(EXENAME) del doc2gih del doc2gih.exe del bf_test del bf_test.exe # realclean target - remove all files created by the makefile realclean: clean del $(EXENAME).exe del $(HELPDEST)\$(HELPFILE) del ..\demo\binary1 del ..\demo\binary2 del ..\demo\binary3 del ..\demo\fit.log del ..\demo\soundfit.par ##### ## END OF GNUPLOT MAKEFILE FOR DJGPP V2 #####