]> Dogcows Code - chaz/yoink/blobdiff - Makefile
optionally install man pages
[chaz/yoink] / Makefile
index 9eba2a037ea5613c622b7563800645252c8baa96..d5718c2ca9f186a5810d8a3ea035a55f5e0d323d 100644 (file)
--- a/Makefile
+++ b/Makefile
@@ -4,14 +4,17 @@
 # Use this file with make to compile and install Yoink.
 #
 # This makefile supports these targets:
-#   all, install, clean, cleandist, run, debug
+#   all, install, clean, distclean, run, debug, dist, dist-gzip, dist-bzip2
 #
 # This build system incorporates the ideas written by Emile van Bergen:
 # http://www.xs4all.nl/~evbergen/nonrecursive-make.html
 #
 
-# Set this to `yes' to echo each build command in full.
-verbose                := no
+# Set this to `true' to echo each build command in full.
+verbose                := false
+
+# Set this to `false' to avoid installing manual pages.
+install_man    := true
 
 
 #
@@ -24,8 +27,7 @@ have_config := $(wildcard config.mk)
 ifneq ($(strip $(have_config)),)
 include config.mk
 else
-no_config:
-       $(error You must run the configure script before you can make anything)
+$(error You must run the configure script before you can make anything)
 endif
 
 
@@ -70,6 +72,10 @@ ifeq ($(DEP_TRACKING),true)
 COMPILE = ./tools/compile.lua
 endif
 
+# Include current directory to allow sources to #include "config.h".
+CFLAGS            += -I.
+CXXFLAGS          += -I.
+
 COMMAND_CC         = $(COMPILE) $(CC)  $(CFLAGS)    $(CF_TGT) -o $@ -c $<
 COMMAND_CXX        = $(COMPILE) $(CXX) $(CXXFLAGS)  $(CF_TGT) -o $@ -c $<
 COMMAND_LD         = $(CC)  $(LDFLAGS) $(LF_TGT) -o $@ $^ $(LL_TGT) $(LIBS)
@@ -77,12 +83,12 @@ COMMAND_LDX        = $(CXX) $(LDFLAGS) $(LF_TGT) -o $@ $^ $(LL_TGT) $(LIBS)
 COMMAND_CCLD       = $(COMPILE) $(CC)  $(CFLAGS)    $(CF_TGT) $(LDFLAGS) $(LF_TGT) -o $@ $< $(LL_TGT) $(LIBS)
 COMMAND_CXXLD      = $(COMPILE) $(CXX) $(CXXFLAGS)  $(CF_TGT) $(LDFLAGS) $(LF_TGT) -o $@ $< $(LL_TGT) $(LIBS)
 COMMAND_AR         = $(AR) rcs $@ $^;  $(RANLIB)    $@
-COMMAND_RC         = $(WINDRES)        $(DDEFINES)  $(DF_TGT) -o $@ -i $<
+COMMAND_RC         = $(WINDRES)        -I.          $(DF_TGT) -o $@ -i $<
 COMMAND_INSTALL    = ./tools/install.sh -m $1 $2 -d $3
 COMMAND_RM         = rm -f $1
 COMMAND_IN         = sed -f config.sed <"$1" >"$2"
 
-ifeq ($(verbose),yes)
+ifeq ($(verbose),true)
 DO_CC              = $(COMMAND_CC)
 DO_CXX             = $(COMMAND_CXX)
 DO_LD              = $(COMMAND_LD)
@@ -96,17 +102,17 @@ DO_RM              = $(COMMAND_RM)
 DO_IN              = $(COMMAND_IN)
 SHELL_LINE_PREFIX  =
 else
-DO_CC              = @echo -e " CC \t$@";    $(COMMAND_CC)
-DO_CXX             = @echo -e " CXX \t$@";   $(COMMAND_CXX)
-DO_LD              = @echo -e " LD \t$@";    $(COMMAND_LD)
-DO_LDX             = @echo -e " LD \t$@";    $(COMMAND_LDX)
-DO_CCLD            = @echo -e " CCLD \t$@";  $(COMMAND_CCLD)
-DO_CXXLD           = @echo -e " CXXLD \t$@"; $(COMMAND_CXXLD)
-DO_AR              = @echo -e " AR \t$@";    $(COMMAND_AR)
-DO_RC              = @echo -e " RC \t$@";    $(COMMAND_RC)
-DO_INSTALL         = @echo -e " CP \t$2";    $(COMMAND_INSTALL)
-DO_RM              = @echo -e " RM \t$1";    $(COMMAND_RM)
-DO_IN              = @echo -e " MAKE \t$2";  $(COMMAND_IN)
+DO_CC              = @echo " CC     $@"; $(COMMAND_CC)
+DO_CXX             = @echo " CXX    $@"; $(COMMAND_CXX)
+DO_LD              = @echo " LINK   $@"; $(COMMAND_LD)
+DO_LDX             = @echo " LINK   $@"; $(COMMAND_LDX)
+DO_CCLD            = @echo " LINK   $@"; $(COMMAND_CCLD)
+DO_CXXLD           = @echo " LINK   $@"; $(COMMAND_CXXLD)
+DO_AR              = @echo " AR     $@"; $(COMMAND_AR)
+DO_RC              = @echo " RC     $@"; $(COMMAND_RC)
+DO_INSTALL         = @echo " CP     $2"; $(COMMAND_INSTALL)
+DO_RM              = @echo " RM     $1"; $(COMMAND_RM)
+DO_IN              = @echo " GEN    $2"; $(COMMAND_IN)
 SHELL_LINE_PREFIX  = @
 endif
 
@@ -123,17 +129,17 @@ endif
        $(DO_CXX)
 %.o: %.rc
        $(DO_RC)
-%: %.o
+%$(EXEEXT): %.o
        $(DO_LD)
-%: %.c
+%$(EXEEXT): %.c
        $(DO_CCLD)
-%: %.cc
+%$(EXEEXT): %.cc
        $(DO_CXXLD)
-%: %.cpp
+%$(EXEEXT): %.cpp
        $(DO_CXXLD)
 %.a: %.o
        $(DO_AR)
-%: %.in
+%: %.in config.sed
        $(call DO_IN,$<,$@)
 
 
@@ -169,10 +175,12 @@ install: all
        do \
                $(call remove_silencer,$(call DO_INSTALL,755,$$file,$(DESTDIR)$(bindir))); \
        done
+ifeq ($(install_man),true)
        $(SHELL_LINE_PREFIX)files='$(MANPAGES)'; for file in $$files; \
        do \
                $(call remove_silencer,$(call DO_INSTALL,644,$$file,$(DESTDIR)$(mandir))); \
        done
+endif
 
 .PHONY: uninstall
 uninstall:
@@ -188,6 +196,17 @@ uninstall:
                $(call remove_silencer,$(call DO_RM,$(DESTDIR)$(datadir)$$base)); \
        done
 
+.PHONY: dist-bzip2
+dist-bzip2:
+       $(SHELL_LINE_PREFIX)git archive HEAD --prefix='$(TARNAME)/' | bzip2 > "$(TARNAME).tar.bz2"
+
+.PHONY: dist-gzip
+dist-gzip:
+       $(SHELL_LINE_PREFIX)git archive HEAD --prefix='$(TARNAME)/' | gzip > "$(TARNAME).tar.gz"
+
+.PHONY: dist
+dist: dist-bzip2
+
 
 #
 # Prevent make from removing any build targets.
This page took 0.023054 seconds and 4 git commands to generate.