X-Git-Url: https://git.dogcows.com/gitweb?p=chaz%2Fyoink;a=blobdiff_plain;f=Makefile;h=95ed652182519087c4f7a07274c73df624013ff5;hp=9eba2a037ea5613c622b7563800645252c8baa96;hb=51069fee9139ab8d14ecc80dffbe5deecb73d9e0;hpb=200be285168841fae7b0ef421b9db3168670263b diff --git a/Makefile b/Makefile index 9eba2a0..95ed652 100644 --- a/Makefile +++ b/Makefile @@ -4,14 +4,14 @@ # 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 # @@ -24,8 +24,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 +69,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) @@ -82,7 +85,7 @@ 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 +99,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 " LD $@"; $(COMMAND_LD) +DO_LDX = @echo " LD $@"; $(COMMAND_LDX) +DO_CCLD = @echo " CCLD $@"; $(COMMAND_CCLD) +DO_CXXLD = @echo " CXXLD $@"; $(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 " MAKE $2"; $(COMMAND_IN) SHELL_LINE_PREFIX = @ endif @@ -123,17 +126,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,$<,$@) @@ -188,6 +191,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.