# 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
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
# Define some common rules.
#
-CC_WRAPPER = ./build/compile.sh $(CC)
-CXX_WRAPPER = ./build/compile.sh $(CXX)
+ifeq ($(DEP_TRACKING),true)
+COMPILE = ./tools/compile.lua
+endif
-COMMAND_CC = $(CC_WRAPPER) $(CFLAGS) $(CF_TGT) -o $@ -c $<
-COMMAND_CXX = $(CXX_WRAPPER) $(CXXFLAGS) $(CF_TGT) -o $@ -c $<
-COMMAND_LD = $(CC) $(LDFLAGS) $(LF_TGT) -o $@ $^ $(LL_TGT) $(LIBS)
-COMMAND_LDX = $(CXX) $(LDFLAGS) $(LF_TGT) -o $@ $^ $(LL_TGT) $(LIBS)
-COMMAND_CCLD = $(CC_WRAPPER) $(CFLAGS) $(CF_TGT) $(LDFLAGS) $(LF_TGT) -o $@ $< $(LL_TGT) $(LIBS)
-COMMAND_CXXLD = $(CXX_WRAPPER) $(CXXFLAGS) $(CF_TGT) $(LDFLAGS) $(LF_TGT) -o $@ $< $(LL_TGT) $(LIBS)
-COMMAND_AR = $(AR) rcs $@ $^; $(RANLIB) $@
-COMMAND_RC = $(WINDRES) $(DDEFINES) $(DF_TGT) -o $@ -i $<
-COMMAND_INSTALL = ./build/install.sh -m $1 $2 -d $3
+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)
+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_INSTALL = ./tools/install.sh -m $1 $2 -d $3
COMMAND_RM = rm -f $1
-COMMAND_IN = ./build/process.sh $1 $2
+COMMAND_IN = sed -f config.sed <"$1" >"$2"
ifeq ($(verbose),yes)
DO_CC = $(COMMAND_CC)
.PHONY: distclean
distclean: clean
+ $(call DO_RM,config.h)
$(call DO_RM,config.mk)
+ $(call DO_RM,config.sed)
.PHONY: all_
all_: $(BINARIES) $(MANPAGES)
$(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.