| 1 | # RCSid: $Id$ | 
| 2 | # | 
| 3 | # Compiles for ray tracing programs. | 
| 4 | # | 
| 5 |  | 
| 6 | OPT = -O | 
| 7 | MACH = -DBSD | 
| 8 | CFLAGS = -I../common -L../lib $(OPT) $(MACH) | 
| 9 | SPECIAL = aed | 
| 10 | CC = cc | 
| 11 | MLIB = -lm | 
| 12 | LINT = lint | 
| 13 | LINTFLAGS = -DBSD | 
| 14 |  | 
| 15 | # | 
| 16 | # The following are user-definable: | 
| 17 | # | 
| 18 | DESTDIR = . | 
| 19 | INSTDIR = /usr/local/bin | 
| 20 | INSTALL = cp | 
| 21 |  | 
| 22 | # | 
| 23 | # The following paths must exist and be relative to root: | 
| 24 | # | 
| 25 | DEVDIR = $(INSTDIR)/dev | 
| 26 | LIBDIR = /usr/local/lib/ray | 
| 27 |  | 
| 28 | # | 
| 29 | # Library routines: | 
| 30 | # | 
| 31 | RLIB = ../lib/libradiance.a | 
| 32 | LIBS = -lrt $(MLIB) | 
| 33 |  | 
| 34 | # | 
| 35 | # Device drivers for rview (see also devtable.c): | 
| 36 | # | 
| 37 | DOBJS = devtable.o devcomm.o editline.o x11.o x11twind.o \ | 
| 38 | colortab.o | 
| 39 | DSRC = devtable.c devcomm.c editline.c x11.c x11twind.c \ | 
| 40 | colortab.c | 
| 41 | DLIBS = -lX11 | 
| 42 |  | 
| 43 | # | 
| 44 | # Standard object files: | 
| 45 | # | 
| 46 |  | 
| 47 | RTOBJS = rtmain.o rtrace.o duphead.o persist.o | 
| 48 | RTSRC = rtmain.c rtrace.c duphead.c persist.c | 
| 49 |  | 
| 50 | RPOBJS = rpmain.o rpict.o srcdraw.o duphead.o persist.o | 
| 51 | RPSRC = rpmain.c rpict.c srcdraw.c duphead.c persist.c | 
| 52 |  | 
| 53 | RVOBJS = rvmain.o rview.o rv2.o rv3.o $(DOBJS) | 
| 54 | RVSRC = rvmain.c rview.c rv2.c rv3.c $(DSRC) | 
| 55 |  | 
| 56 | RLOBJS = raycalls.o raypcalls.o | 
| 57 | RLSRC = raycalls.c raypcalls.c | 
| 58 |  | 
| 59 | ROBJS = $(RAYOBJS) $(SURFOBJS) $(MATOBJS) \ | 
| 60 | $(MODOBJS) $(SUPPOBJS) | 
| 61 | RSRC = $(RAYSRC) $(SURFSRC) $(MATSRC) \ | 
| 62 | $(MODSRC) $(SUPPSRC) | 
| 63 |  | 
| 64 | RAYOBJS = ambcomp.o ambient.o ambio.o freeobjmem.o initotypes.o \ | 
| 65 | preload.o raytrace.o renderopts.o | 
| 66 | RAYSRC = ambcomp.c ambient.c ambio.c freeobjmem.c initotypes.c \ | 
| 67 | preload.c raytrace.c renderopts.c | 
| 68 |  | 
| 69 | SURFOBJS = source.o sphere.o srcsupp.o srcsamp.o virtuals.o o_face.o \ | 
| 70 | o_cone.o o_instance.o o_mesh.o | 
| 71 | SURFSRC = sphere.c source.c srcsupp.c virtuals.c o_face.c \ | 
| 72 | srcsamp.c o_cone.c o_instance.c o_mesh.c | 
| 73 |  | 
| 74 | MATOBJS = aniso.o normal.o dielectric.o m_clip.o glass.o m_brdf.o \ | 
| 75 | m_mirror.o m_direct.o m_mist.o fprism.o m_alias.o | 
| 76 | MATSRC = aniso.c normal.c dielectric.c m_clip.c glass.c m_brdf.c \ | 
| 77 | m_mirror.c m_direct.c m_mist.c fprism.c m_alias.c | 
| 78 |  | 
| 79 | MODOBJS = p_func.o t_func.o p_data.o t_data.o text.o mx_func.o mx_data.o | 
| 80 | MODSRC = p_func.c t_func.c p_data.c t_data.c text.c mx_func.c mx_data.c | 
| 81 |  | 
| 82 | SUPPOBJS = func.o noise3.o data.o | 
| 83 | SUPPSRC = func.c noise3.c data.c | 
| 84 |  | 
| 85 | HEADERS = ambient.h ray.h data.h otspecial.h source.h | 
| 86 |  | 
| 87 | # | 
| 88 | # What this makefile produces: | 
| 89 | # | 
| 90 |  | 
| 91 | PROGS = $(DESTDIR)/rtrace $(DESTDIR)/rpict $(DESTDIR)/rview $(DESTDIR)/lookamb | 
| 92 |  | 
| 93 | all:    $(PROGS) $(SPECIAL) $(RLOBJS) | 
| 94 |  | 
| 95 | install:        all rayinit.cal | 
| 96 | $(INSTALL) $(PROGS) $(INSTDIR) | 
| 97 | cp $(RLOBJS) ../lib | 
| 98 | rm -f $(LIBDIR)/rayinit.cal | 
| 99 | cp rayinit.cal $(LIBDIR) | 
| 100 |  | 
| 101 | aed:    $(DEVDIR)/aed | 
| 102 |  | 
| 103 | ogl: | 
| 104 |  | 
| 105 | clean: | 
| 106 | set nonomatch; rm -f $(PROGS) *.o core | 
| 107 |  | 
| 108 | lint:   $(RVSRC) | 
| 109 | $(LINT) $(LINTFLAGS) -DRVIEW $(RVSRC) $(LIBS) | 
| 110 |  | 
| 111 | # | 
| 112 | # Links: | 
| 113 | # | 
| 114 |  | 
| 115 | $(DESTDIR)/rtrace:      $(RTOBJS) $(RLIB) | 
| 116 | $(CC) $(CFLAGS) -o $(DESTDIR)/rtrace $(RTOBJS) $(RLIB) $(LIBS) | 
| 117 |  | 
| 118 | $(DESTDIR)/rpict:       $(RPOBJS) $(RLIB) | 
| 119 | $(CC) $(CFLAGS) -o $(DESTDIR)/rpict $(RPOBJS) $(RLIB) $(LIBS) | 
| 120 |  | 
| 121 | $(DESTDIR)/rview:       $(RVOBJS) $(RLIB) | 
| 122 | $(CC) $(CFLAGS) -o $(DESTDIR)/rview $(RVOBJS) $(RLIB) $(LIBS) $(DLIBS) | 
| 123 |  | 
| 124 | $(DESTDIR)/lookamb:     lookamb.o ambio.o | 
| 125 | $(CC) $(CFLAGS) -o $(DESTDIR)/lookamb lookamb.o ambio.o $(LIBS) | 
| 126 |  | 
| 127 | $(DEVDIR)/aed:  aed.o colortab.o tty.o devmain.o editline.o | 
| 128 | $(CC) $(CFLAGS) -s -o $(DEVDIR)/aed aed.o colortab.o \ | 
| 129 | devmain.o tty.o editline.o $(LIBS) | 
| 130 |  | 
| 131 | $(RLIB):        $(ROBJS) Version.o | 
| 132 | ar rc $(RLIB) $(ROBJS) Version.o | 
| 133 | -ranlib $(RLIB) | 
| 134 |  | 
| 135 | # | 
| 136 | # Special compiles: | 
| 137 | # | 
| 138 |  | 
| 139 | rtmain.o:       rtmain.c | 
| 140 | $(CC) $(CFLAGS) -DNICE=4 -c rtmain.c | 
| 141 |  | 
| 142 | rpmain.o:       rpmain.c | 
| 143 | $(CC) $(CFLAGS) -DNICE=6 -c rpmain.c | 
| 144 |  | 
| 145 | rvmain.o:       rvmain.c | 
| 146 | $(CC) $(CFLAGS) -c rvmain.c | 
| 147 |  | 
| 148 | # | 
| 149 | # Uncomment the following to model dispersion: | 
| 150 | # | 
| 151 | dielectric.o:   dielectric.c source.h | 
| 152 | $(CC) $(CFLAGS) -DDISPERSE -c dielectric.c | 
| 153 |  | 
| 154 | # end of dispersion compiles. | 
| 155 |  | 
| 156 | devcomm.o:      devcomm.c | 
| 157 | $(CC) $(CFLAGS) -DDEVPATH=\"$(DEVDIR)\" -c devcomm.c | 
| 158 |  | 
| 159 | aed.o:  aed.c | 
| 160 | $(CC) $(CFLAGS) -Daed_init=dinit -c aed.c | 
| 161 |  | 
| 162 | # | 
| 163 | # Version module: | 
| 164 | # | 
| 165 |  | 
| 166 | Version.c:      VERSION $(RSRC) $(HEADERS) | 
| 167 | ( cat VERSION ; date ; whoami ; hostname ) > Version.c | 
| 168 | ed - Version.c < verscript.ed | 
| 169 |  | 
| 170 | # | 
| 171 | # Include dependencies: | 
| 172 | # | 
| 173 |  | 
| 174 | aed.o ambio.o colortab.o data.o devcomm.o \ | 
| 175 | devmain.o lookamb.o rview.o x11.o:      ../common/color.h | 
| 176 |  | 
| 177 | freeobjmem.o o_cone.o srcsupp.o:        ../common/cone.h | 
| 178 |  | 
| 179 | data.o freeobjmem.o m_brdf.o mx_data.o \ | 
| 180 | p_data.o raycalls.o t_data.o:   data.h | 
| 181 |  | 
| 182 | aed.o devcomm.o devmain.o devtable.o \ | 
| 183 | editline.o tty.o x11.o: driver.h | 
| 184 |  | 
| 185 | freeobjmem.o o_face.o srcsupp.o:        ../common/face.h | 
| 186 |  | 
| 187 | ambient.o raytrace.o rpmain.o rtmain.o \ | 
| 188 | rtrace.o rvmain.o rv2.o rv3.o source.o: ../common/octree.h | 
| 189 |  | 
| 190 | o_instance.o:   ../common/instance.h | 
| 191 |  | 
| 192 | ambient.o aniso.o dielectric.o freeobjmem.o func.o glass.o initotypes.o \ | 
| 193 | m_brdf.o m_direct.o m_mirror.o normal.o o_cone.o preload.o \ | 
| 194 | raycalls.o raytrace.o rtrace.o rv2.o source.o sphere.o srcsupp.o text.o \ | 
| 195 | virtuals.o:     ../common/otypes.h | 
| 196 |  | 
| 197 | ambient.o ambcomp.o aniso.o normal.o raycalls.o rpict.o rvmain.o \ | 
| 198 | rtmain.o rpmain.o persist.o source.o rv3.o \ | 
| 199 | srcsamp.o virtuals.o:   ../common/random.h | 
| 200 |  | 
| 201 | ambcomp.o ambient.o aniso.o dielectric.o freeobjmem.o func.o glass.o \ | 
| 202 | m_brdf.o m_clip.o m_direct.o m_mirror.o m_mist.o mx_data.o o_mesh.o \ | 
| 203 | mx_func.o normal.o o_cone.o o_face.o o_instance.o p_data.o p_func.o \ | 
| 204 | raycalls.o raypcalls.o raytrace.o rpict.o rtrace.o rv2.o rv3.o rview.o \ | 
| 205 | source.o sphere.o srcdraw.o srcsamp.o srcsupp.o t_data.o t_func.o text.o \ | 
| 206 | rpmain.o rtmain.o rvmain.o virtuals.o m_alias.o:        ray.h \ | 
| 207 | ../common/standard.h ../common/octree.h \ | 
| 208 | ../common/mat4.h ../common/fvect.h ../common/object.h ../common/color.h | 
| 209 |  | 
| 210 | rv2.o rv3.o rview.o:    rpaint.h driver.h ../common/view.h ../common/resolu.h | 
| 211 |  | 
| 212 | m_direct.o m_mirror.o m_mist.o dielectric.o raycalls.o \ | 
| 213 | source.o srcdraw.o srcsamp.o srcsupp.o virtuals.o:      source.h | 
| 214 |  | 
| 215 | cone.o data.o devcomm.o initotypes.o fprism.o preload.o \ | 
| 216 | duphead.o octree.o:     ../common/standard.h ../common/mat4.h ../common/fvect.h | 
| 217 |  | 
| 218 | ambio.o:        ../common/fvect.h | 
| 219 |  | 
| 220 | initotypes.o raytrace.o:        otspecial.h | 
| 221 |  | 
| 222 | rpmain.o rtmain.o rvmain.o rpict.o \ | 
| 223 | srcdraw.o:      ../common/view.h ../common/resolu.h | 
| 224 |  | 
| 225 | x11.o x11twind.o: x11twind.h | 
| 226 |  | 
| 227 | x11.o:  x11icon.h | 
| 228 |  | 
| 229 | ambient.o ambcomp.o ambio.o lookamb.o raycalls.o:       ambient.h | 
| 230 |  | 
| 231 | data.o rpmain.o rtmain.o rvmain.o rpict.o rtrace.o \ | 
| 232 | rv2.o:  ../common/resolu.h | 
| 233 |  | 
| 234 | aniso.o func.o m_brdf.o m_direct.o mx_data.o mx_func.o p_data.o \ | 
| 235 | p_func.o t_data.o t_func.o:     func.h | 
| 236 |  | 
| 237 | preload.o:      ../common/object.h ../common/face.h ../common/cone.h \ | 
| 238 | ../common/instance.h ../common/mesh.h ../common/color.h data.h | 
| 239 |  | 
| 240 | devcomm.o:      ../common/vfork.h | 
| 241 |  | 
| 242 | rtmain.o rpmain.o rvmain.o persist.o duphead.o rpict.o: ../common/paths.h | 
| 243 |  | 
| 244 | freeobjmem.o raycalls.o text.o: ../common/font.h | 
| 245 |  | 
| 246 | raypcalls.o:    ../common/selcall.h | 
| 247 |  | 
| 248 | o_mesh.o:       ../common/mesh.h |