#! smake include $(ROOT)/usr/include/make/commondefs TARGETS ?= $(T1) T1 = libtess.a # Compilation flags: # # -DNDEBUG is for the production code; it removes all assertion checks # (note that looks at this symbol). # # -DNO_MALLOPT uses regular malloc instead of the mallopt() version. # ***** Unless you use this flag, you must use "-lmalloc" to link # ***** your application! # # -DMEMORY_DEBUG turns on the M_DEBUG option of mallopt; this can # increase the running time a LOT. # # -DGLU_TESS_API_FLOAT compiles a single-precision version of the library. # # -float prevents automatic promotion to double precision; this will produce # faster code when compiled with -DGLU_TESS_API_FLOAT. # # -DNO_BRANCH_CONDITIONS uses & and | instead of && and || on a couple # of heavily-used tests (VertEq and VertLeq); some compilers can generate # better code with these (use special instructions to avoid branching). # # -DDEBUG is *only* for use with the test program called "trite". It uses # some variables which are defined by the test program, so you won't # be able to link it with anything else. # LCOPTS = -float -O2 -DNDEBUG LCDEFS = LCINCS = -I. # Also, there are several build options which are controlled by making # symbolic links rather than with flags. There is a script called # "configtess" which will change these links if you want to experiment. # The choices are: # # configtess memalloc simple # Uses regular malloc() and free() for memory allocation. # configtess memalloc fast # default # Uses a much faster block-based allocator. # configtess priorityq heap # Uses a heap for the priority queue implementation. # configtess priorityq sort # default # Quicksorts the initial vertices, uses a heap for the rest. # # Currently there is only one implementation for the following modules, # but the API was designed with multiple choices in mind: # # configtess dict list # A dynamic dictionary based on doubly-linked lists. # configtess normal simple # Approximates the normal from 3 widely separated vertices. # DFILES = \ Makefile \ $(NULL) HFILES = \ tesselator.h \ dict.h \ geom.h \ mesh.h \ memalloc.h \ normal.h \ priorityq.h \ render.h \ sweep.h \ tess.h \ tessmono.h \ $(NULL) CFILES = \ dict.c \ geom.c \ mesh.c \ memalloc.c \ normal.c \ priorityq.c \ render.c \ sweep.c \ tess.c \ tessmono.c \ $(NULL) LINKEDFILES = \ dict.h \ dict.c \ normal.h \ normal.c \ memalloc.h \ memalloc.c \ priorityq.h \ priorityq.c \ $(NULL) ALLFILES = \ $(DFILES) \ $(HFILES) \ $(CFILES) \ $(NULL) default: $(TARGETS) $(_FORCE): lint: $(CFILES) $(LINT) -u -x $(CFILES) clobber: clean rm -rf $(MKDEPFILE) $(TARGETS) rm -rf $(LINKEDFILES) clean: $(_FORCE) -csh -fc "rm -f $(DIRT) >& /dev/null" $(T1): $(OBJECTS) Makefile rm -f $@ $(AR) crl $@ $(OBJECTS) # These are the defaults for the modules which can be configured # with "configtess". normal.h: normal-simple.h ln -s normal-simple.h normal.h dict.h: dict-list.h ln -s dict-list.h dict.h memalloc.h: memalloc-fast.h ln -s memalloc-fast.h memalloc.h priorityq.h: priorityq-sort.h ln -s priorityq-sort.h priorityq.h normal.c: normal-simple.c ln -s normal-simple.c normal.c dict.c: dict-list.c ln -s dict-list.c dict.c memalloc.c: memalloc-fast.c ln -s memalloc-fast.c memalloc.c priorityq.c: priorityq-sort.c ln -s priorityq-sort.c priorityq.c #include $(ROOT)/usr/include/make/commonrules # DO NOT DELETE THIS LINE -- make depend depends on it. geom.o: mesh.h tesselator.h /usr/include/stddef.h /usr/include/sgidefs.h geom.o: /usr/include/GL/gl.h memalloc-fast.o: /usr/include/malloc.h memalloc-simple.o: /usr/include/malloc.h memalloc.o: /usr/include/malloc.h mesh.o: tesselator.h /usr/include/stddef.h /usr/include/sgidefs.h mesh.o: /usr/include/GL/gl.h normal-simple.o: tess.h tesselator.h /usr/include/stddef.h normal-simple.o: /usr/include/sgidefs.h /usr/include/GL/gl.h mesh.h dict.h normal-simple.o: priorityq.h priorityq-heap.h normal.o: tess.h tesselator.h /usr/include/stddef.h /usr/include/sgidefs.h normal.o: /usr/include/GL/gl.h mesh.h dict.h priorityq.h priorityq-heap.h priorityq-sort.o: priorityq-heap.h priorityq.o: priorityq-heap.h render.o: mesh.h tesselator.h /usr/include/stddef.h /usr/include/sgidefs.h render.o: /usr/include/GL/gl.h sweep.o: mesh.h tesselator.h /usr/include/stddef.h /usr/include/sgidefs.h sweep.o: /usr/include/GL/gl.h dict.h tess.o: tesselator.h /usr/include/stddef.h /usr/include/sgidefs.h tess.o: /usr/include/GL/gl.h mesh.h dict.h priorityq.h priorityq-heap.h tesselator.o: /usr/include/stddef.h /usr/include/sgidefs.h tesselator.o: /usr/include/GL/gl.h dict-list.o: /usr/include/stddef.h /usr/include/sgidefs.h dict-list.h dict-list.o: memalloc.h /usr/include/malloc.h dict.o: /usr/include/stddef.h /usr/include/sgidefs.h dict-list.h memalloc.h dict.o: /usr/include/malloc.h geom.o: /usr/include/assert.h mesh.h tesselator.h /usr/include/stddef.h geom.o: /usr/include/sgidefs.h /usr/include/GL/gl.h geom.h memalloc-fast.o: memalloc.h /usr/include/malloc.h memalloc-simple.o: memalloc.h /usr/include/malloc.h /usr/include/string.h memalloc.o: memalloc.h /usr/include/malloc.h mesh.o: /usr/include/assert.h mesh.h tesselator.h /usr/include/stddef.h mesh.o: /usr/include/sgidefs.h /usr/include/GL/gl.h memalloc.h mesh.o: /usr/include/malloc.h normal-simple.o: mesh.h tesselator.h /usr/include/stddef.h normal-simple.o: /usr/include/sgidefs.h /usr/include/GL/gl.h tess.h dict.h normal-simple.o: priorityq.h priorityq-heap.h normal.h /usr/include/math.h normal-simple.o: /usr/include/assert.h normal.o: mesh.h tesselator.h /usr/include/stddef.h /usr/include/sgidefs.h normal.o: /usr/include/GL/gl.h tess.h dict.h priorityq.h priorityq-heap.h normal.o: normal.h /usr/include/math.h /usr/include/assert.h oldstuff.o: /usr/include/float.h priorityq-heap.o: /usr/include/stddef.h /usr/include/sgidefs.h priorityq-heap.o: /usr/include/assert.h priorityq-heap.h memalloc.h priorityq-heap.o: /usr/include/malloc.h geom.h mesh.h tesselator.h priorityq-heap.o: /usr/include/GL/gl.h priorityq-sort.o: /usr/include/stddef.h /usr/include/sgidefs.h priorityq-sort.o: /usr/include/assert.h memalloc.h /usr/include/malloc.h priorityq-sort.o: priorityq-heap.c priorityq-heap.h geom.h mesh.h priorityq-sort.o: tesselator.h /usr/include/GL/gl.h priorityq-sort.h priorityq.o: /usr/include/stddef.h /usr/include/sgidefs.h priorityq.o: /usr/include/assert.h memalloc.h /usr/include/malloc.h priorityq.o: priorityq-heap.c priorityq-heap.h geom.h mesh.h tesselator.h priorityq.o: /usr/include/GL/gl.h priorityq-sort.h render.o: /usr/include/assert.h mesh.h tesselator.h /usr/include/stddef.h render.o: /usr/include/sgidefs.h /usr/include/GL/gl.h tess.h dict.h render.o: priorityq.h priorityq-heap.h render.h stack.o: stack.h memalloc.h /usr/include/malloc.h sweep.o: /usr/include/assert.h mesh.h tesselator.h /usr/include/stddef.h sweep.o: /usr/include/sgidefs.h /usr/include/GL/gl.h geom.h tess.h dict.h sweep.o: priorityq.h priorityq-heap.h memalloc.h /usr/include/malloc.h sweep.o: sweep.h tess.o: memalloc.h /usr/include/malloc.h tess.h tesselator.h tess.o: /usr/include/stddef.h /usr/include/sgidefs.h /usr/include/GL/gl.h tess.o: mesh.h dict.h priorityq.h priorityq-heap.h normal.h sweep.h tess.o: tessmono.h render.h tessmono.o: geom.h mesh.h tesselator.h /usr/include/stddef.h tessmono.o: /usr/include/sgidefs.h /usr/include/GL/gl.h tessmono.h tessmono.o: /usr/include/assert.h