# # sketch: 3d line drawings from a simple scene description language # # (c) Gene Ressler # # makefile v0.03 # CC = gcc -O1 -g YACC = bison --defines --debug --report=all --yacc LEX = flex verdata=$(shell cat version.dat) VER_MINOR=$(word 3,$(verdata)) VER_MAJOR=$(word 6,$(verdata)) VER_BUILD=$(word 9,$(verdata)) VER=$(VER_MAJOR).$(VER_MINOR).$(VER_BUILD) ifeq ($(OS),Windows_NT) EXE=sketch.exe else EXE=sketch endif DISTDIR=sketch-$(VER) TARFILE=$(DISTDIR).tar TARZIP=$(DISTDIR).tgz ZIP=$(DISTDIR).zip EXEZIP=sketchexe-$(VER).zip UPLOAD=Upload OBJECTS=bsp.o cmdline.o emit.o error.o expr.o geometry.o geomio.o global.o\ langver.o lex.yy.o main.o memutil.o opts.o scene.o symbol.o y.tab.o SOURCES=$(OBJECTS:%.o=%.c) sketch.l sketch.y HEADERS=bsp.h cmdline.h dynarray.h emit.h error.h expr.h geometry.h geomio.h\ global.h langver.h main.h memutil.h opts.h parse.h resource.h scene.h\ symbol.h version.h y.tab.h $(EXE) : $(OBJECTS) $(CC) -o $(EXE) $(OBJECTS) -lm y.tab.c y.tab.h : sketch.y $(YACC) $< lex.yy.c : sketch.l $(LEX) $< version.h : version.dat FORCE perl makever.pl FORCE: .PHONY : dist dist : clean -rm $(TARZIP) -rm -rf $(DISTDIR) mkdir $(DISTDIR) perl distadmin.pl cp readme COPYING.txt makefile updates.htm makever.pl $(DISTDIR) echo dist=1 | cat version.dat - > $(DISTDIR)/version.dat cp $(SOURCES) $(DISTDIR) touch $(DISTDIR)/lex.yy.c $(DISTDIR)/y.tab.c cp $(HEADERS) $(DISTDIR) mkdir $(DISTDIR)/Data -cp Data/bunny.sk Data/buggy.sk Data/test.sk \ Data/2tori.sk Data/hand.sk Data/cone.sk $(DISTDIR)/Data cp -r Doc $(DISTDIR) tar cfv $(TARFILE) $(DISTDIR) gzip $(TARFILE) mv -f $(TARFILE).gz $(TARZIP) -rm -f $(ZIP) zip -r $(ZIP) $(DISTDIR) -rm -f $(EXEZIP) cl -DYY_NEVER_INTERACTIVE=1 -Za -Ox -Fe$(EXE) *.c zip $(EXEZIP) $(EXE) -rm -rf $(UPLOAD) mkdir $(UPLOAD) mv $(EXEZIP) $(UPLOAD) mv $(ZIP) $(UPLOAD) mv $(TARZIP) $(UPLOAD) cp Doc/sketch.pdf $(UPLOAD) cp Doc/sketch.html $(UPLOAD) cp index.htm updates.htm $(UPLOAD) .PHONY : upload upload : ftp -s:upload.ftp -d ftp.frontiernet.net .PHONY : clean clean : -rm -f $(EXE) $(OBJECTS) *.obj core *~ *.stackdump y.output -rm -rf Debug Release -cd Doc; rm -f \ sketch.ps sketch.dvi \ sketch.aux sketch.cp sketch.cps sketch.fn sketch.ky \ sketch.log sketch.op sketch.ops sketch.pg \ sketch.sx sketch.sxs sketch.tmp sketch.toc sketch.tp \ sketch.vr texput.log ex*\.pdf ex*\.eps ex*\.tex ex*\.txt \ \#*\# *~ -cd Data; rm -f *~ \#*\# MANUAL=sketch MANUALTEXI=$(MANUAL).texi .PHONY : realclean realclean: clean cd Doc;\ rm -f *~ $(MANUAL).dvi $(MANUAL).pdf $(MANUAL).ps $(MANUAL).html;\ cd $(MANUAL); rm -f *; cd ..;\ cd Data; rm -f *~; cd .. .PHONY : docs docs : clean $(EXE) cd Doc;\ cmd /c "make.bat examples" bsp.o: bsp.c bsp.h geometry.h dynarray.h error.h geomio.h cmdline.o: cmdline.c cmdline.h langver.h error.h memutil.h symbol.h \ scene.h opts.h dynarray.h geometry.h expr.h bsp.h global.h emit.h \ parse.h version.h emit.o: emit.c emit.h scene.h opts.h dynarray.h error.h geometry.h expr.h \ bsp.h global.h langver.h memutil.h version.h error.o: error.c error.h expr.o: expr.c expr.h geometry.h dynarray.h error.h geometry.o: geometry.c geometry.h dynarray.h error.h memutil.h geomio.o: geomio.c geomio.h geometry.h dynarray.h error.h global.o: global.c global.h opts.h dynarray.h error.h geometry.h \ langver.h memutil.h langver.o: langver.c langver.h error.h lex.yy.o: lex.yy.c geometry.h dynarray.h error.h symbol.h scene.h opts.h \ expr.h bsp.h global.h langver.h memutil.h parse.h y.tab.h main.o: main.c main.h cmdline.h langver.h error.h memutil.h symbol.h \ scene.h opts.h dynarray.h geometry.h expr.h bsp.h global.h parse.h \ emit.h memutil.o: memutil.c memutil.h opts.o: opts.c opts.h dynarray.h error.h geometry.h scene.o: scene.c scene.h opts.h dynarray.h error.h geometry.h expr.h \ bsp.h global.h langver.h memutil.h emit.h symbol.o: symbol.c error.h geometry.h dynarray.h symbol.h scene.h opts.h \ expr.h bsp.h global.h langver.h memutil.h y.tab.o: y.tab.c parse.h scene.h opts.h dynarray.h error.h geometry.h \ expr.h bsp.h global.h langver.h memutil.h symbol.h