home *** CD-ROM | disk | FTP | other *** search
/ Stars of Shareware: Raytrace & Morphing / SOS-RAYTRACE.ISO / programm / source / rayce27s / makefile < prev    next >
Encoding:
Makefile  |  1994-02-02  |  4.0 KB  |  179 lines

  1. # My makefile for Rayce under linux
  2. #    make srayce     for a speedy version of rayce
  3. #    make drayce    for a gbd-debug version of rayce
  4. #    make rayce     for a plain version of rayce
  5. #    make prayce     for a gprof version of rayce
  6.  
  7. #compiling for other platforms
  8. # set CC, YACC to the appropriate names, set the CFLAGS correct
  9. # Depending on your os, change the .o endings
  10.  
  11. NICE=nice
  12. CFLAGS=-O -DDEBUG -c -Wall -ansi -Wunused 
  13. LINKER=gcc
  14. CC=gcc
  15. YFLAGS=-d
  16. YACC=bison
  17. PARSFILE=rayparse.tab
  18. SYSFILE=linux
  19. LIBS=-lm
  20. OBEX=o
  21. LDFLAGS=
  22.  
  23. #
  24. #          MSDOS.
  25. #
  26.  
  27. #SYSFILE=ibmtcc
  28. #PARSFILE=rayparse
  29. #LINKFL=-ml -erayce
  30. #LINKER=tcc
  31. #CC=tcc
  32. #BFLAGS=-d
  33. #YACC=bison
  34. #CFLAGS=-c -ml -w-cln
  35. #OBEX=obj
  36.  
  37. # be careful. MS Dos truncates some names, such as initialize.c
  38.  
  39. SRC=    poly.c algebraic.c gif.c imagemap.c csg.c queue.c color.c  \
  40.     $(PARSFILE).c box.c composite.c lights.c token.c plane.c camera.c\
  41.     object.c texture.c  quadric.c sphere.c $(SYSFILE).c  raymath.c\
  42.     main.c trace.c intersect.c  initialize.c bg.c shade.c\
  43.     solve.c torus.c polygon.c superq.c extrusion.c triangle.c discs.c
  44.  
  45. OBJ=    poly.$(OBEX) algebraic.$(OBEX) gif.$(OBEX) \
  46.     imagemap.$(OBEX) csg.$(OBEX) queue.$(OBEX) \
  47.     color.$(OBEX) $(PARSFILE).$(OBEX)\
  48.     box.$(OBEX) composite.$(OBEX) \
  49.     lights.$(OBEX) token.$(OBEX)\
  50.     plane.$(OBEX) camera.$(OBEX) \
  51.     object.$(OBEX) texture.$(OBEX)\
  52.     quadric.$(OBEX) sphere.$(OBEX) \
  53.     $(SYSFILE).$(OBEX) raymath.$(OBEX) \
  54.     main.$(OBEX) trace.$(OBEX)  intersect.$(OBEX) \
  55.     initialize.$(OBEX) shade.$(OBEX)\
  56.     bg.$(OBEX) solve.$(OBEX) torus.$(OBEX)\
  57.     polygon.$(OBEX) superq.$(OBEX) extrusion.$(OBEX) triangle.$(OBEX) discs.$(OBEX)
  58.  
  59. # the basic rule
  60. rayce:  $(OBJ)
  61.     $(LINKER) $(LDFLAGS) -o rayce $(OBJ) $(LIBS)
  62.  
  63. # speed version of rayce
  64. srayce: $(SRC) $(HDR)
  65.     -rm rayce
  66.     $(MAKE) CFLAGS='-c -O2  -fomit-frame-pointer -finline-functions -funroll-loops' rayce
  67.     mv rayce srayce
  68.  
  69. # rebuild for debugging.
  70. drayce: $(SRC) $(HDR)
  71.     -rm rayce
  72.     $(MAKE) CFLAGS='-DDEBUG -c -ggdb -Wall' rayce
  73.     mv rayce drayce
  74.  
  75. # for profiling. When you want it to work, install libc 4.5.8 and gcc 2.5.7
  76. prayce: $(SRC) $(HDR)
  77.     -rm rayce
  78.     $(MAKE) LDFLAGS='-pg' CFLAGS='-O2 -c -pg -finline-functions -funroll-loops' rayce
  79.     mv rayce prayce
  80.  
  81. # UT
  82. lint:
  83.     mv rayce .foobarray
  84.     $(MAKE) LDFLAGS='-S' CFLAGS='-ansi -pedantic \
  85.           -Wall -Wwrite-strings -Wpointer-arith -Wcast-qual\ 
  86.           -Wenum-clash -Wcast-align -Wtraditional \
  87.           -Wstrict-prototypes -Wmissing-prototypes \
  88.           -Wredundant-decls -Wnested-externs \
  89.           -Winline -Wshadow -S -o /dev/null' rayce
  90.     mv .foobarray rayce
  91.  
  92. # rebuild all execs.
  93. all:    
  94.     $(MAKE) clean
  95.     $(MAKE) back
  96.     $(MAKE) srayce
  97.     rm *.o
  98.     $(MAKE) prayce
  99.     rm *.o
  100.     $(MAKE) rayce
  101.  
  102. # crucial headers.
  103. HDR=ray.h extern.h
  104.  
  105. $(OBJ):    $(HDR)
  106.  
  107.  
  108. # produce nice distributable source files.
  109. rebuild:
  110.     etags *.[ch]
  111.     cformat *.[ch]
  112.  
  113.  
  114. clean:
  115.     -rm *.o core.* *~ #* gmon.out rayparse.output
  116.  
  117. realclean:
  118.     -rm *.o [spd]rayce  rayce core.* *~ #* gmon.out rayparse.output
  119.  
  120. back:
  121.     -rm *~
  122.     zip -u ~/backs/rayce *.[chyr] README*  MANIFEST*.doc ?akefile* *.inc 
  123.  
  124.  
  125.  
  126. # note on messydog systems, output of bison will be called
  127. # rayparse.y and rayparse.h
  128.  
  129. #is an implicit rule in gnu make, but just to be on the safe side
  130. .c.$(OBEX):
  131.     $(NICE) $(CC) $(CFLAGS) $*.c
  132.  
  133. $(PARSFILE).c: rayparse.y
  134.     $(YACC) $(YFLAGS) rayparse.y
  135.  
  136. token.o: rayparse.y
  137.  
  138. ############################################################
  139. ## Shipping. You probably don't need this, but I do.
  140. ############################################################
  141.  
  142. ARCHIVER=zip 
  143. VER=27
  144. SCNARC=rayce$(VER)d.zip
  145. SRCARC=rayce$(VER)s.zip
  146. DOSBIN=rayce$(VER)x.zip
  147.  
  148. ship:    $(SCNARC) $(SRCARC) #$(DOSBIN)
  149.  
  150. #scenes + docs
  151. $(SCNARC): *.doc 
  152.     -rm $(SCNARC)
  153.     cp file_id.diz.d file_id.diz
  154.     $(ARCHIVER) $(SCNARC) file_id.diz `cat MANIFEST.doc` 
  155.  
  156.  
  157. #sources
  158. $(SRCARC): $(SRC) *.h MANIFEST.src
  159.     mv rayparse.tab.c tmp.tab.c
  160.     $(MAKE) rebuild
  161.     -rm $(SRCARC)
  162.     cp file_id.diz.s file_id.diz
  163.     -$(ARCHIVER) $(SRCARC) file_id.diz `cat MANIFEST.src`
  164.     mv tmp.tab.c rayparse.tab.c
  165.  
  166. #dos exec
  167. $(DOSBIN): /doshd/graf/ray/rayce.exe
  168.     -rm $(DOSBIN)
  169.     cp file_id.diz.x file_id.diz
  170.     $(ARCHIVER) -j $(DOSBIN) file_id.diz /doshd/graf/ray/rayce.exe
  171.     
  172.  
  173.  
  174.  
  175.  
  176.  
  177.  
  178.  
  179.