INCLUDES_1 = -I. -I$(srcdir) -I$(UTILS_SRC) -I$(HACK_SRC) -I../..
INCLUDES = $(INCLUDES_1) @INCLUDES@
-UTIL_SRCS = $(UTILS_SRC)/colors.c $(UTILS_SRC)/hsv.c \
- $(UTILS_SRC)/resources.c $(UTILS_SRC)/usleep.c \
- $(UTILS_SRC)/visual.c $(UTILS_SRC)/visual-gl.c \
- $(UTILS_SRC)/yarandom.c $(UTILS_SRC)/xshm.c \
- $(UTILS_SRC)/textclient.c
-UTIL_OBJS = $(UTILS_SRC)/colors.o $(UTILS_SRC)/hsv.o \
+UTILDIR_OBJS = $(UTILS_SRC)/colors.o $(UTILS_SRC)/hsv.o \
$(UTILS_SRC)/resources.o $(UTILS_SRC)/usleep.o \
$(UTILS_SRC)/visual.o $(UTILS_SRC)/visual-gl.o \
- $(UTILS_SRC)/yarandom.o $(UTILS_SRC)/xshm.o \
+ $(UTILS_SRC)/yarandom.o $(UTILS_SRC)/xshm.o \
$(UTILS_SRC)/textclient.o
+HACKDIR_OBJS = $(HACK_SRC)/screenhack.o $(UTILS_SRC)/xlockmore.o \
+ $(HACK_SRC)/fps.o
SRCS = xscreensaver-gl-helper.c normals.c glxfonts.c fps-gl.c \
atlantis.c b_draw.c b_lockglue.c b_sphere.c bubble3d.c \
- buildlwo.c cage.c dolphin.c gears.c lament.c moebius.c \
- morph3d.c pipeobjs.c pipes.c rubik.c s1_1.c s1_2.c s1_3.c \
- s1_4.c s1_5.c s1_6.c s1_b.c shark.c sproingies.c \
+ buildlwo.c cage.c dolphin.c gears.c lament.c lament_model.c \
+ moebius.c morph3d.c pipeobjs.c pipes.c rubik.c s1_1.c s1_2.c \
+ s1_3.c s1_4.c s1_5.c s1_6.c s1_b.c shark.c sproingies.c \
sproingiewrap.c stairs.c superquadrics.c swim.c whale.c \
xlock-gl-utils.c xpm-ximage.c glplanet.c pulsar.c \
extrusion.c extrusion-helix2.c extrusion-helix3.c \
hilbert.c companion.c companion_quad.c companion_disc.c \
companion_heart.c tronbit.c tronbit_idle1.c tronbit_idle2.c \
tronbit_no.c tronbit_yes.c jwzgles.c kaleidocycle.c \
- quasicrystal.c unknownpleasures.c
+ quasicrystal.c unknownpleasures.c geodesic.c \
+ projectiveplane.c winduprobot.c robot.c robot-wireframe.c
OBJS = xscreensaver-gl-helper.o normals.o glxfonts.o fps-gl.o \
atlantis.o b_draw.o b_lockglue.o b_sphere.o bubble3d.o \
- buildlwo.o cage.o dolphin.o gears.o lament.o moebius.o \
- morph3d.o pipeobjs.o pipes.o rubik.o s1_1.o s1_2.o s1_3.o \
- s1_4.o s1_5.o s1_6.o s1_b.o shark.o sproingies.o \
+ buildlwo.o cage.o dolphin.o gears.o lament.o lament_model.o \
+ moebius.o morph3d.o pipeobjs.o pipes.o rubik.o s1_1.o s1_2.o \
+ s1_3.o s1_4.o s1_5.o s1_6.o s1_b.o shark.o sproingies.o \
sproingiewrap.o stairs.o superquadrics.o swim.o whale.o \
xlock-gl-utils.o xpm-ximage.o glplanet.o pulsar.o \
extrusion.o extrusion-helix2.o extrusion-helix3.o \
hilbert.o companion.o companion_quad.o companion_disc.o \
companion_heart.o tronbit.o tronbit_idle1.o tronbit_idle2.o \
tronbit_no.o tronbit_yes.o jwzgles.o kaleidocycle.o \
- quasicrystal.o unknownpleasures.o
+ quasicrystal.o unknownpleasures.o geodesic.o \
+ projectiveplane.o winduprobot.o robot.o robot-wireframe.o
GL_EXES = cage gears moebius pipes sproingies stairs superquadrics \
morph3d rubik atlantis lament bubble3d glplanet pulsar \
juggler3d topblock glschool glcells voronoi moebiusgears \
lockward cubicgrid hypnowheel skytentacles jigsaw photopile \
rubikblocks surfaces hilbert companioncube tronbit \
- kaleidocycle quasicrystal unknownpleasures
+ kaleidocycle quasicrystal unknownpleasures geodesic \
+ projectiveplane winduprobot
GLE_EXES = extrusion
SUID_EXES = sonar
GL_UTIL_EXES = xscreensaver-gl-helper
RETIRED_EXES = @RETIRED_GL_EXES@
RETIRED_GL_EXES = glforestfire
-FPS_OBJS = @GLFPS_OBJS@ $(HACK_BIN)/fps.o
-FONT_OBJS = @GLFONT_OBJS@
-
+FPS_OBJS = glxfonts.o texfont.o $(HACK_BIN)/fps.o fps-gl.o
HACK_OBJS = $(JWZGLES_OBJS) $(HACK_BIN)/screenhack.o \
xlockmore-gl.o xlock-gl-utils.o ${FPS_OBJS} \
$(UTILS_BIN)/resources.o $(UTILS_BIN)/visual.o \
hypnowheel.man skytentacles.man sonar.man jigsaw.man \
photopile.man rubikblocks.man surfaces.man hilbert.man \
companioncube.man tronbit.man kaleidocycle.man \
- quasicrystal.man unknownpleasures.man
+ quasicrystal.man unknownpleasures.man geodesic.man \
+ projectiveplane.man winduprobot.man
MEN = @GL_MEN@
RETIRED_MEN = glforestfire.man
EXTRAS = README Makefile.in dxf2gl.pl vrml2gl.pl wfront2gl.pl \
- molecules.sh starwars.txt
+ molecules.sh starwars.txt *.dxf
-TARFILES = $(SRCS) $(HDRS) $(MEN) $(RETIRED_MEN) $(EXTRAS)
+TARFILES = $(SRCS) $(HDRS) $(GL_MEN) $(RETIRED_MEN) $(EXTRAS)
default: all
validate_xml:
@echo "Validating XML..." ; \
- cd $(HACK_SRC) ; ./check-configs.pl $(EXES)
+ cd $(HACK_SRC) ; ./check-configs.pl $(GL_EXES) $(GLE_EXES) $(SUID_EXES)
distdepend:: check_men validate_xml
-# Rules for noticing when the objects from the utils directory are out of
-# date with respect to their sources, and going and building them according
-# to the rules in their own Makefile...
+# Rules for noticing when the objects from the utils and hacks
+# directories are out of date with respect to their sources, and going
+# and building them according to the rules in their own Makefile...
#
$(UTILS_BIN)/colors.o: $(UTILS_SRC)/colors.c
$(UTILS_BIN)/grabclient.o: $(UTILS_SRC)/grabclient.c
$(UTILS_BIN)/yarandom.o: $(UTILS_SRC)/yarandom.c
$(UTILS_BIN)/xshm.o: $(UTILS_SRC)/xshm.c
$(UTILS_BIN)/textclient.o: $(UTILS_SRC)/textclient.c
+$(HACK_BIN)/screenhack.o: $(HACK_SRC)/screenhack.c
+$(HACK_BIN)/xlockmore.o: $(HACK_SRC)/xlockmore.c
+$(HACK_BIN)/fps.o: $(HACK_SRC)/fps.c
-$(UTIL_OBJS):
- $(MAKE) -C $(UTILS_BIN) $(@F) CC="$(CC)" CFLAGS="$(CFLAGS)" LDFLAGS="$(LDFLAGS)"
-
-$(HACK_BIN)/xlockmore.o: $(HACK_SRC)/xlockmore.c
+$(UTILDIR_OBJS):
+ $(MAKE) -C $(UTILS_BIN) $(@F) CC="$(CC)" CFLAGS="$(CFLAGS)"
+$(HACKDIR_OBJS):
$(MAKE) -C $(HACK_BIN) $(@F) CC="$(CC)" CFLAGS="$(CFLAGS)"
# How we build object files in this directory.
.c.o:
- $(CC) -c $(INCLUDES) $(DEFS) $(CFLAGS) $(X_CFLAGS) $<
+ $(CC) -c $(INCLUDES) $(DEFS) $(CPPFLAGS) $(CFLAGS) $(X_CFLAGS) $<
# How to build the "xscreensaver-gl-helper" program, that lets the daemon
# These hacks use a slightly-differently-compiled variant of xlockmore.c.
# This is how to make the the other .o file from it.
#
-XLM_CFLAGS=-DUSE_GL $(INCLUDES) $(DEFS) $(CFLAGS) $(X_CFLAGS)
+XLM_CFLAGS=-DUSE_GL $(INCLUDES) $(DEFS) $(CPPFLAGS) $(CFLAGS) $(X_CFLAGS)
xlockmore-gl.o: $(HACK_SRC)/xlockmore.c
$(CC) -o $@ -c $(XLM_CFLAGS) $(HACK_SRC)/xlockmore.c
sproingies: sproingies.o $(HACK_OBJS) $(SPROINGIES)
$(CC_HACK) -o $@ $@.o $(HACK_OBJS) $(SPROINGIES) $(HACK_LIBS)
-LAMENTOBJS = $(HACK_TRACK_OBJS) xpm-ximage.o normals.o
+LAMENTOBJS = gllist.o lament_model.o $(HACK_TRACK_OBJS) xpm-ximage.o normals.o
lament: lament.o $(LAMENTOBJS)
$(CC_HACK) -o $@ $@.o $(LAMENTOBJS) $(XPM_LIBS)
+lament_dxf::
+ ./dxf2gl.pl --smooth --layers lament.dxf lament_model.c
+
+
B3D_OBJS = b_sphere.o b_draw.o b_lockglue.o $(HACK_OBJS)
bubble3d: bubble3d.o $(B3D_OBJS)
$(CC_HACK) -o $@ $@.o $(B3D_OBJS) $(HACK_LIBS)
gflux: gflux.o $(HACK_TRACK_GRAB_OBJS)
$(CC_HACK) -o $@ $@.o $(HACK_TRACK_GRAB_OBJS) $(HACK_LIBS)
-SW_OBJS=starwars.o glut_stroke.o glut_swidth.o \
- $(TEXT) ${FONT_OBJS} $(HACK_OBJS)
+SW_OBJS=starwars.o glut_stroke.o glut_swidth.o $(TEXT) $(HACK_OBJS)
starwars: $(SW_OBJS)
$(CC_HACK) -o $@ $(SW_OBJS) $(HACK_LIBS) $(TEXT_LIBS)
flyingtoasters: $(TOAST_OBJS)
$(CC_HACK) -o $@ $(TOAST_OBJS) $(XPM_LIBS)
+toaster_dxf::
+ @set -e ; \
+ for f in \
+ toaster.dxf \
+ toaster_base.dxf \
+ toaster_handle.dxf \
+ toaster_handle2.dxf \
+ toaster_jet.dxf \
+ toaster_knob.dxf \
+ toaster_slots.dxf \
+ toaster_wing.dxf \
+ toast.dxf \
+ toast2.dxf \
+ ; do \
+ f2=`echo $$f | sed 's/dxf$$/c/'` ; \
+ ./dxf2gl.pl --normalize --smooth $$f $$f2 ; \
+ done ; \
+
COW_OBJS=\
cow_face.o cow_hide.o cow_hoofs.o cow_horns.o cow_tail.o cow_udder.o \
bouncingcow.o gllist.o xpm-ximage.o $(HACK_TRACK_OBJS)
bouncingcow: $(COW_OBJS)
$(CC_HACK) -o $@ $(COW_OBJS) $(XPM_LIBS)
+ROBO_OBJS=\
+ robot.o robot-wireframe.o \
+ gllist.o xpm-ximage.o normals.o involute.o sphere.o \
+ winduprobot.o $(TEXT) $(HACK_TRACK_OBJS)
+winduprobot: $(ROBO_OBJS)
+ $(CC_HACK) -o $@ $(ROBO_OBJS) $(XPM_LIBS) $(TEXT_LIBS)
+
+winduprobot_dxf::
+ ./dxf2gl.pl --smooth --layers robot.dxf robot.c
+ ./dxf2gl.pl --wireframe robot-wireframe.dxf robot-wireframe.c
+
glslideshow: glslideshow.o $(HACK_GRAB_OBJS)
$(CC_HACK) -o $@ $@.o $(HACK_GRAB_OBJS) $(HACK_LIBS)
hypertorus: hypertorus.o $(HACK_TRACK_OBJS)
$(CC_HACK) -o $@ $@.o $(HACK_TRACK_OBJS) $(HACK_LIBS)
+projectiveplane: projectiveplane.o $(HACK_TRACK_OBJS)
+ $(CC_HACK) -o $@ $@.o $(HACK_TRACK_OBJS) $(HACK_LIBS)
+
glmatrix: glmatrix.o xpm-ximage.o $(HACK_OBJS)
$(CC_HACK) -o $@ $@.o xpm-ximage.o $(HACK_OBJS) $(XPM_LIBS)
boing: boing.o normals.o $(HACK_TRACK_OBJS)
$(CC_HACK) -o $@ $@.o normals.o $(HACK_TRACK_OBJS) $(HACK_LIBS)
-carousel: carousel.o ${FONT_OBJS} $(HACK_TRACK_GRAB_OBJS)
- $(CC_HACK) -o $@ $@.o ${FONT_OBJS} $(HACK_TRACK_GRAB_OBJS) $(HACK_LIBS)
+carousel: carousel.o $(HACK_TRACK_GRAB_OBJS)
+ $(CC_HACK) -o $@ $@.o $(HACK_TRACK_GRAB_OBJS) $(HACK_LIBS)
-fliptext: fliptext.o $(TEXT) ${FONT_OBJS} $(HACK_OBJS)
- $(CC_HACK) -o $@ $@.o $(TEXT) ${FONT_OBJS} $(HACK_OBJS) $(HACK_LIBS) $(TEXT_LIBS)
+fliptext: fliptext.o $(TEXT) $(HACK_OBJS)
+ $(CC_HACK) -o $@ $@.o $(TEXT) $(HACK_OBJS) $(HACK_LIBS) $(TEXT_LIBS)
antmaze: antmaze.o sphere.o tube.o $(HACK_TRACK_OBJS)
$(CC_HACK) -o $@ $@.o sphere.o tube.o $(HACK_TRACK_OBJS) $(HACK_LIBS)
skytentacles: skytentacles.o $(TENTACLE_OBJS)
$(CC_HACK) -o $@ $@.o $(TENTACLE_OBJS) $(XPM_LIBS)
-SONAR_OBJS=sonar-sim.o sonar-icmp.o ${FONT_OBJS} $(HACK_TRACK_OBJS)
+SONAR_OBJS=sonar-sim.o sonar-icmp.o $(HACK_TRACK_OBJS)
sonar: sonar.o $(SONAR_OBJS)
$(CC_HACK) -o $@ $@.o $(SONAR_OBJS) $(HACK_LIBS)
-JIGSAW_OBJS=normals.o $(UTILS_BIN)/spline.o \
- ${FONT_OBJS} $(HACK_TRACK_GRAB_OBJS)
+JIGSAW_OBJS=normals.o $(UTILS_BIN)/spline.o $(HACK_TRACK_GRAB_OBJS)
jigsaw: jigsaw.o $(JIGSAW_OBJS)
$(CC_HACK) -o $@ $@.o $(JIGSAW_OBJS) $(HACK_LIBS)
-PHOTOPILE_OBJS=${FONT_OBJS} dropshadow.o $(HACK_GRAB_OBJS)
+PHOTOPILE_OBJS=dropshadow.o $(HACK_GRAB_OBJS)
photopile: photopile.o $(PHOTOPILE_OBJS)
$(CC_HACK) -o $@ $@.o $(PHOTOPILE_OBJS) $(HACK_LIBS)
unknownpleasures: unknownpleasures.o $(HACK_TRACK_OBJS)
$(CC_HACK) -o $@ $@.o $(HACK_TRACK_OBJS) $(HACK_LIBS)
+geodesic: geodesic.o normals.o $(HACK_TRACK_OBJS)
+ $(CC_HACK) -o $@ $@.o normals.o $(HACK_TRACK_OBJS) $(HACK_LIBS)
##############################################################################
#
gears.o: $(UTILS_SRC)/yarandom.h
gears.o: $(HACK_SRC)/xlockmoreI.h
gears.o: $(HACK_SRC)/xlockmore.h
+geodesic.o: ../../config.h
+geodesic.o: $(HACK_SRC)/fps.h
+geodesic.o: $(srcdir)/gllist.h
+geodesic.o: $(srcdir)/gltrackball.h
+geodesic.o: $(srcdir)/jwzglesI.h
+geodesic.o: $(srcdir)/jwzgles.h
+geodesic.o: $(srcdir)/normals.h
+geodesic.o: $(srcdir)/rotator.h
+geodesic.o: $(HACK_SRC)/screenhackI.h
+geodesic.o: $(UTILS_SRC)/colors.h
+geodesic.o: $(UTILS_SRC)/grabscreen.h
+geodesic.o: $(UTILS_SRC)/hsv.h
+geodesic.o: $(UTILS_SRC)/resources.h
+geodesic.o: $(UTILS_SRC)/usleep.h
+geodesic.o: $(UTILS_SRC)/visual.h
+geodesic.o: $(UTILS_SRC)/xshm.h
+geodesic.o: $(UTILS_SRC)/yarandom.h
+geodesic.o: $(HACK_SRC)/xlockmoreI.h
+geodesic.o: $(HACK_SRC)/xlockmore.h
gflux.o: ../../config.h
gflux.o: $(HACK_SRC)/fps.h
gflux.o: $(srcdir)/gltrackball.h
klein.o: $(UTILS_SRC)/yarandom.h
klein.o: $(HACK_SRC)/xlockmoreI.h
klein.o: $(HACK_SRC)/xlockmore.h
+lament_model.o: ../../config.h
+lament_model.o: $(srcdir)/gllist.h
+lament_model.o: $(srcdir)/jwzglesI.h
+lament_model.o: $(srcdir)/jwzgles.h
lament.o: ../../config.h
lament.o: $(HACK_SRC)/fps.h
+lament.o: $(srcdir)/gllist.h
lament.o: $(srcdir)/gltrackball.h
lament.o: $(HACK_SRC)/images/lament512.xpm
lament.o: $(srcdir)/jwzglesI.h
polytopes.o: $(UTILS_SRC)/yarandom.h
polytopes.o: $(HACK_SRC)/xlockmoreI.h
polytopes.o: $(HACK_SRC)/xlockmore.h
+projectiveplane.o: ../../config.h
+projectiveplane.o: $(HACK_SRC)/fps.h
+projectiveplane.o: $(srcdir)/gltrackball.h
+projectiveplane.o: $(srcdir)/jwzglesI.h
+projectiveplane.o: $(srcdir)/jwzgles.h
+projectiveplane.o: $(HACK_SRC)/screenhackI.h
+projectiveplane.o: $(UTILS_SRC)/colors.h
+projectiveplane.o: $(UTILS_SRC)/grabscreen.h
+projectiveplane.o: $(UTILS_SRC)/hsv.h
+projectiveplane.o: $(UTILS_SRC)/resources.h
+projectiveplane.o: $(UTILS_SRC)/usleep.h
+projectiveplane.o: $(UTILS_SRC)/visual.h
+projectiveplane.o: $(UTILS_SRC)/xshm.h
+projectiveplane.o: $(UTILS_SRC)/yarandom.h
+projectiveplane.o: $(HACK_SRC)/xlockmoreI.h
+projectiveplane.o: $(HACK_SRC)/xlockmore.h
providence.o: ../../config.h
providence.o: $(HACK_SRC)/fps.h
providence.o: $(srcdir)/gltrackball.h
queens.o: $(UTILS_SRC)/yarandom.h
queens.o: $(HACK_SRC)/xlockmoreI.h
queens.o: $(HACK_SRC)/xlockmore.h
+robot.o: ../../config.h
+robot.o: $(srcdir)/gllist.h
+robot.o: $(srcdir)/jwzglesI.h
+robot.o: $(srcdir)/jwzgles.h
+robot-wireframe.o: ../../config.h
+robot-wireframe.o: $(srcdir)/gllist.h
+robot-wireframe.o: $(srcdir)/jwzglesI.h
+robot-wireframe.o: $(srcdir)/jwzgles.h
rotator.o: ../../config.h
rotator.o: $(srcdir)/rotator.h
rotator.o: $(UTILS_SRC)/yarandom.h
whale.o: $(UTILS_SRC)/usleep.h
whale.o: $(UTILS_SRC)/visual.h
whale.o: $(UTILS_SRC)/yarandom.h
+winduprobot.o: ../../config.h
+winduprobot.o: $(HACK_SRC)/fps.h
+winduprobot.o: $(srcdir)/gllist.h
+winduprobot.o: $(srcdir)/gltrackball.h
+winduprobot.o: $(srcdir)/glxfonts.h
+winduprobot.o: $(srcdir)/involute.h
+winduprobot.o: $(srcdir)/jwzglesI.h
+winduprobot.o: $(srcdir)/jwzgles.h
+winduprobot.o: $(HACK_SRC)/screenhackI.h
+winduprobot.o: $(srcdir)/sphere.h
+winduprobot.o: $(srcdir)/texfont.h
+winduprobot.o: $(UTILS_SRC)/colors.h
+winduprobot.o: $(UTILS_SRC)/grabscreen.h
+winduprobot.o: $(UTILS_SRC)/hsv.h
+winduprobot.o: $(UTILS_SRC)/resources.h
+winduprobot.o: $(UTILS_SRC)/textclient.h
+winduprobot.o: $(UTILS_SRC)/usleep.h
+winduprobot.o: $(UTILS_SRC)/visual.h
+winduprobot.o: $(UTILS_SRC)/xshm.h
+winduprobot.o: $(UTILS_SRC)/yarandom.h
+winduprobot.o: $(HACK_SRC)/xlockmoreI.h
+winduprobot.o: $(HACK_SRC)/xlockmore.h
+winduprobot.o: $(srcdir)/xpm-ximage.h
xlock-gl-utils.o: ../../config.h
xlock-gl-utils.o: $(HACK_SRC)/fps.h
xlock-gl-utils.o: $(srcdir)/glxfonts.h