http://ftp.x.org/contrib/applications/xscreensaver-2.24.tar.gz
[xscreensaver] / driver / Makefile.in
index 7164ecce15e42d184d15f79ab0c0e56ac46c7180..64e19587877e12b5367f5ee96259b39a7850246b 100644 (file)
@@ -20,6 +20,7 @@ CC            = @CC@
 CFLAGS         = @CFLAGS@
 LDFLAGS                = @LDFLAGS@
 DEFS           = @DEFS@
+DEFS2          = $(DEFS) -DDEFAULT_PATH_PREFIX='"@HACKDIR@"'
 LIBS           = @LIBS@
 
 DEPEND         = @DEPEND@
@@ -32,20 +33,31 @@ SUID_FLAGS      = -o root -m 4755
 INSTALL_PROGRAM = @INSTALL_PROGRAM@
 INSTALL_SETUID  = @INSTALL_SETUID@
 INSTALL_DATA   = @INSTALL_DATA@
+INSTALL_DIRS   = @INSTALL_DIRS@
 
 X_CFLAGS       = @X_CFLAGS@
 X_LIBS         = @X_LIBS@
 X_PRE_LIBS     = @X_PRE_LIBS@
 X_EXTRA_LIBS   = @X_EXTRA_LIBS@
 
-XLIBS          = $(X_LIBS) $(X_PRE_LIBS) -lX11 -lXext $(X_EXTRA_LIBS)
+# Note:
+#
+# X_LIBS would more properly be called X_LDFLAGS (it contains the -L args.)
+# X_PRE_LIBS contains extra libraries you have to link against on some systems,
+#         and that must come before -lX11.  (e.g., -lSM and -lICE.)
+# X_EXTRA_LIBS contains extra libraries needed by X that aren't a part of X.
+#         (e.g., -lsocket, -lnsl, etc.)
+#
+# SAVER_LIBS is the link line for "xscreensaver", and
+# CMD_LIBS is the link line for "xscreensaver-command".
+
 
 AD_DIR         = @APPDEFAULTS@
 
 UTILS_SRC      = $(srcdir)/../utils
 UTILS_BIN      = ../utils
 
-INCLUDES       = -I. -I$(srcdir) -I$(srcdir)/.. -I$(UTILS_SRC) @INCLUDES@
+INCLUDES       = -I. -I$(srcdir) -I$(UTILS_SRC) -I.. @INCLUDES@
 
 PASSWD_LIBS    = @PASSWD_LIBS@
 MOTIF_SRCS     = dialogs-Xm.c
@@ -73,10 +85,12 @@ LOCK_OBJS   = @LOCK_OBJS@
 UTIL_SRCS      = $(UTILS_SRC)/fade.c $(UTILS_SRC)/overlay.c \
                  $(UTILS_SRC)/resources.c $(UTILS_SRC)/usleep.c \
                  $(UTILS_SRC)/visual.c $(UTILS_SRC)/xroger.c \
+                 $(UTILS_SRC)/spline.c \
                  $(UTILS_SRC)/yarandom.c @XMU_SRCS@
 UTIL_OBJS      = $(UTILS_BIN)/fade.o $(UTILS_BIN)/overlay.o \
                  $(UTILS_BIN)/resources.o $(UTILS_BIN)/usleep.o \
                  $(UTILS_BIN)/visual.o $(UTILS_BIN)/xroger.o \
+                 $(UTILS_BIN)/spline.o \
                  $(UTILS_BIN)/yarandom.o @XMU_OBJS@
 
 SAVER_SRCS_1   = demo.c stderr.c subprocs.c timers.c windows.c \
@@ -86,11 +100,17 @@ SAVER_OBJS_1       = demo.o stderr.o subprocs.o timers.o windows.o \
 
 SAVER_SRCS     = $(SAVER_SRCS_1) $(DIALOG_SRCS) $(LOCK_SRCS) $(UTIL_SRCS)
 SAVER_OBJS     = $(SAVER_OBJS_1) $(DIALOG_OBJS) $(LOCK_OBJS) $(UTIL_OBJS)
-SAVER_LIBS     = @SAVER_LIBS@ -lXt $(XLIBS) $(PASSWD_LIBS) $(LIBS)
 
 CMD_SRCS       = xscreensaver-command.c
 CMD_OBJS       = xscreensaver-command.o
-CMD_LIBS       = $(XLIBS) $(LIBS)
+
+SAVER_LIBS     = $(X_LIBS) $(X_PRE_LIBS) @SAVER_LIBS@ -lXt   \
+                 -lX11 -lXext $(X_EXTRA_LIBS) $(PASSWD_LIBS) \
+                 $(LIBS)
+
+CMD_LIBS       = $(X_LIBS) $(X_PRE_LIBS)      \
+                 -lX11 -lXext $(X_EXTRA_LIBS) \
+                 $(LIBS)
 
 EXES           = xscreensaver xscreensaver-command
 
@@ -132,19 +152,22 @@ install-program:
  $$e "           must run 'make install' as 'root', not as '$$me'."         ;\
  $$e ""                                                                             ;\
  $$e "           For now, xscreensaver will be installed non-setuid, which"  ;\
- $$e "           means that locking may not work."                          ;\
+ $$e "           means that locking might not work."                        ;\
  $$e ""                                                                             ;\
           fi ;                                                         \
        fi ;                                                            \
+       if [ ! -d $(bindir) ]; then $(INSTALL_DIRS) $(bindir) ; fi ;    \
        echo $$inst xscreensaver $(bindir)/xscreensaver ;               \
        $$inst xscreensaver $(bindir)/xscreensaver
        $(INSTALL_PROGRAM) xscreensaver-command $(bindir)/xscreensaver-command
 
 install-ad:
+       @if [ ! -d $(AD_DIR) ]; then $(INSTALL_DIRS) $(AD_DIR) ; fi ;   \
        $(INSTALL_DATA) XScreenSaver.ad $(AD_DIR)/XScreenSaver
 
 install-man:
        @men="$(MEN)" ;                                                 \
+       if [ ! -d $(man1dir) ]; then $(INSTALL_DIRS) $(man1dir) ; fi ;  \
        for man in $$men; do                                            \
          instname=`echo $$man | sed 's/\.man$$/\.$(mansuffix)/'` ;     \
          echo $(INSTALL_DATA) $(srcdir)/$$man $(man1dir)/$$instname ;  \
@@ -179,24 +202,26 @@ depend: XScreenSaver_ad.h
        $(DEPEND) -s '# DO NOT DELETE: updated by make depend'              \
        $(DEPEND_FLAGS) --                                                  \
        $(INCLUDES) $(DEFS) $(DEPEND_DEFINES) $(CFLAGS) $(X_CFLAGS) --      \
-       $(SAVER_SRCS_1) $(CMD_SRCS)
+       $(SAVER_SRCS) $(CMD_SRCS)
 
 # Adds some dependencies to Makefile.in -- not totally accurate, but pretty
 # close.  This excludes dependencies on files in /usr/include, etc.  It tries
 # to include only dependencies on files which are themselves a part of this
 # package.
-distdepend: update_ad_version XScreenSaver_ad.h
+distdepend: update_ad_version update_man_version XScreenSaver_ad.h
        @echo updating dependencies in `pwd`/Makefile.in... ;               \
        $(DEPEND) -w 0 -f -                                                 \
        -s '# DO NOT DELETE: updated by make distdepend' $(DEPEND_FLAGS) -- \
        $(INCLUDES) $(DEFS) $(DEPEND_DEFINES) $(CFLAGS) $(X_CFLAGS) --      \
-       $(SAVER_SRCS_1) $(CMD_SRCS) |                                       \
+       $(SAVER_SRCS_1) $(MOTIF_SRCS) $(ATHENA_SRCS) $(PWENT_SRCS)          \
+       $(LOCK_SRCS_1) $(CMD_SRCS) |                                        \
        (                                                                   \
          awk '/^# .*Makefile.in ---/,/^# DO .*distdepend/' < Makefile.in ; \
          sed -e 's@ \./@ @g;s@ /[^ ]*@@g;/^.*:$$/d'                        \
              -e 's@\.\./utils@$$(UTILS_SRC)@g'                             \
              -e 's@ \([^$$]\)@ $$(srcdir)/\1@g'                            \
-             -e 's@$$.*\(XScreenSaver_ad\)@\1@g' ;                         \
+             -e 's@$$.*\(XScreenSaver_ad\)@\1@g'                           \
+             -e 's@ $$(srcdir)/\(.*config\.h\)@ \1@g' ;                    \
          echo ''                                                           \
        ) > /tmp/distdepend.$$$$ &&                                         \
        mv Makefile.in Makefile.in.bak &&                                   \
@@ -209,9 +234,11 @@ update_ad_version::
        @S=XScreenSaver.ad.in ;                                             \
        U=$(UTILS_SRC)/version.h ;                                          \
        V=`sed -n 's/.*\([0-9][0-9]*\.[0-9]*\).*/\1/p' < $$U` ;             \
-       echo -n "Updating version number in $$S to $$V... " ;               \
+       D=`date '+%d-%b-%y'` ;                                              \
+       echo -n "Updating version number in $$S to $$V $$D... " ;           \
        T=/tmp/xs.$$$$ ;                                                    \
-       sed "s/\(.*version \)[0-9][0-9]*\.[0-9]*\(.*\)/\1$$V\2/"            \
+       sed -e "s/\(.*version \)[0-9][0-9]*\.[0-9]*\(.*\)/\1$$V\2/"         \
+           -e "s/\([0-9][0-9]-[A-Z][a-z][a-z]-[0-9][0-9]\)/$$D/"           \
          < $$S > $$T ;                                                     \
        if cmp -s $$S $$T ; then                                            \
          echo "unchanged." ;                                               \
@@ -221,6 +248,23 @@ update_ad_version::
        fi ;                                                                \
        rm $$T
 
+update_man_version::
+       @for S in $(MEN); do                                                \
+       U=$(UTILS_SRC)/version.h ;                                          \
+       V=`sed -n 's/.*\([0-9][0-9]*\.[0-9]*\).*/\1/p' < $$U` ;             \
+       V="`date '+%d-%b-%y'` ($$V)" ;                                      \
+       echo -n "Updating footer in $$S to \"$$V\"... " ;                   \
+       T=/tmp/xs.$$$$ ;                                                    \
+       sed "s/^\(\.TH[^\"]*\)\"[^\"]*\"\(.*\)/\1\"$$V\"\2/"                \
+         < $$S > $$T ;                                                     \
+       if cmp -s $$S $$T ; then                                            \
+         echo "unchanged." ;                                               \
+       else                                                                \
+         cat $$T > $$S ;                                                   \
+         echo "done." ;                                                    \
+       fi ;                                                                \
+       rm $$T ;                                                            \
+       done
 
 TAGS: tags
 tags:
@@ -242,6 +286,7 @@ $(UTILS_BIN)/usleep.o:              $(UTILS_SRC)/usleep.c
 $(UTILS_BIN)/visual.o:         $(UTILS_SRC)/visual.c
 $(UTILS_BIN)/xmu.o:            $(UTILS_SRC)/xmu.c
 $(UTILS_BIN)/xroger.o:         $(UTILS_SRC)/xroger.c
+$(UTILS_BIN)/spline.o:         $(UTILS_SRC)/spline.c
 $(UTILS_BIN)/yarandom.o:       $(UTILS_SRC)/yarandom.c
 
 $(UTIL_OBJS):
@@ -250,13 +295,17 @@ $(UTIL_OBJS):
 
 # How we build object files in this directory.
 .c.o:
-       $(CC) -c $(INCLUDES) $(DEFS) $(CFLAGS) $(X_CFLAGS) $<
+       $(CC) -c $(INCLUDES) $(DEFS)  $(CFLAGS) $(X_CFLAGS) $<
+
+# subprocs is the only one that takes an extra -D option.
+subprocs.o: subprocs.c
+       $(CC) -c $(INCLUDES) $(DEFS2) $(CFLAGS) $(X_CFLAGS) $<
 
 
 # How we build the default app-defaults file into the program.
 #
 XScreenSaver_ad.h: XScreenSaver.ad
-       $(SHELL) $(UTILS_SRC)/ad2c XScreenSaver.ad > $@
+       $(SHELL) $(UTILS_SRC)/ad2c XScreenSaver.ad > XScreenSaver_ad.h
 
 # The executables linked in this directory.
 #
@@ -267,35 +316,50 @@ xscreensaver-command: $(CMD_OBJS)
        $(CC) $(LDFLAGS) -o $@ $(CMD_OBJS) $(CMD_LIBS)
 
 
+TEST_PASSWD_OBJS = test-passwd.o $(LOCK_OBJS_1) $(PWENT_OBJS) $(DIALOG_OBJS) \
+        subprocs.o demo.o \
+       $(UTIL_OBJS)
+
+test-passwd: $(TEST_PASSWD_OBJS)
+       $(CC) $(LDFLAGS) -o $@ $(TEST_PASSWD_OBJS) $(SAVER_LIBS)
+
 ##############################################################################
 #
 # DO NOT DELETE: updated by make distdepend
 
-demo.o: $(srcdir)/../config.h
+demo.o: ../config.h
 demo.o: $(srcdir)/xscreensaver.h
 demo.o: $(UTILS_SRC)/resources.h
-stderr.o: $(srcdir)/../config.h
+stderr.o: ../config.h
 stderr.o: $(srcdir)/xscreensaver.h
 stderr.o: $(UTILS_SRC)/resources.h
 stderr.o: $(UTILS_SRC)/visual.h
-subprocs.o: $(srcdir)/../config.h
+subprocs.o: ../config.h
 subprocs.o: $(srcdir)/xscreensaver.h
 subprocs.o: $(UTILS_SRC)/yarandom.h
-timers.o: $(srcdir)/../config.h
+timers.o: ../config.h
 timers.o: $(srcdir)/xscreensaver.h
-windows.o: $(srcdir)/../config.h
+windows.o: ../config.h
 windows.o: $(srcdir)/xscreensaver.h
 windows.o: $(UTILS_SRC)/visual.h
 windows.o: $(UTILS_SRC)/fade.h
-xscreensaver.o: $(srcdir)/../config.h
+xscreensaver.o: ../config.h
 xscreensaver.o: $(srcdir)/xscreensaver.h
 xscreensaver.o: $(UTILS_SRC)/version.h
 xscreensaver.o: $(UTILS_SRC)/yarandom.h
 xscreensaver.o: $(UTILS_SRC)/resources.h
 xscreensaver.o: $(UTILS_SRC)/visual.h
 xscreensaver.o: XScreenSaver_ad.h
-xset.o: $(srcdir)/../config.h
+xset.o: ../config.h
 xset.o: $(srcdir)/xscreensaver.h
-xscreensaver-command.o: $(srcdir)/../config.h
+dialogs-Xm.o: ../config.h
+dialogs-Xm.o: $(UTILS_SRC)/visual.h
+dialogs-Xaw.o: ../config.h
+dialogs-Xaw.o: $(UTILS_SRC)/visual.h
+passwd.o: ../config.h
+lock.o: ../config.h
+lock.o: $(srcdir)/xscreensaver.h
+lock.o: $(UTILS_SRC)/resources.h
+xscreensaver-command.o: ../config.h
 xscreensaver-command.o: $(UTILS_SRC)/version.h