Add print-vars to show the overridable settings in the Makefile

This commit is contained in:
Daniel De Graaf 2010-05-19 10:15:22 -05:00
parent b23f585042
commit c80ca4f3e8

View File

@ -15,21 +15,21 @@ SYSTEM = @SYSTEM@
BUILDPATH = @BUILD_DIR@
SOCKETENGINE = @SOCKETENGINE@
PURE_STATIC = @PURE_STATIC@
CXXFLAGS = -pipe -fPIC -DPIC
CXXFLAGS = -pipe -fPIC -DPIC -Iinclude
LDLIBS = -pthread -lstdc++
LDFLAGS =
SHARED = -shared -rdynamic
CORELDFLAGS = -rdynamic -L. $(LDFLAGS)
PICLDFLAGS = -fPIC -shared -rdynamic $(LDFLAGS)
BASE = "@BASE_DIR@"
CONPATH = "@CONFIG_DIR@"
MODPATH = "@MODULE_DIR@"
BINPATH = "@BINARY_DIR@"
BASE = @BASE_DIR@
CONPATH = @CONFIG_DIR@
MODPATH = @MODULE_DIR@
BINPATH = @BINARY_DIR@
INSTUID = @UID@
INSTMODE_DIR = 0755
INSTMODE_BIN = 0755
INSTMODE_LIB = 0644
@IFEQ $(CC) icc
CXXFLAGS += -Wshadow
@ELSE
@ -46,7 +46,6 @@ INSTMODE_LIB = 0644
@ELSIFEQ $(SYSTEM) darwin
CXXFLAGS += -DDARWIN -frtti
LDLIBS += -ldl
SHARED = -bundle -twolevel_namespace -undefined dynamic_lookup
CORELDFLAGS = -dynamic -bind_at_load -L.
@ELSIFEQ $(SYSTEM) interix
CXXFLAGS += -D_ALL_SOURCE -I/usr/local/include
@ -68,12 +67,25 @@ INSTMODE_LIB = 0644
@ELSE
HEADER = unknown-debug-level
@ENDIF
# Default target
TARGET = all
FOOTER = finishmessage
CXXFLAGS += -Iinclude
@IFDEF M
HEADER = mod-header
FOOTER = mod-footer
@BSD_ONLY TARGET = modules/${M:S/.so$//}.so
@GNU_ONLY TARGET = modules/$(M:.so=).so
@ENDIF
@IFDEF T
HEADER =
FOOTER = target
TARGET = $(T)
@ENDIF
@GNU_ONLY MAKEFLAGS += --no-print-directory
@GNU_ONLY SOURCEPATH = $(shell /bin/pwd)
@BSD_ONLY SOURCEPATH != /bin/pwd
@ -81,11 +93,13 @@ CXXFLAGS += -Iinclude
RUNCC = $(CC)
RUNLD = $(CC)
VERBOSE = -v
HEADER += print-vars
@ELSE
@GNU_ONLY MAKEFLAGS += --silent
@BSD_ONLY MAKE += -s
RUNCC = perl $(SOURCEPATH)/make/run-cc.pl $(CC)
RUNLD = perl $(SOURCEPATH)/make/run-cc.pl $(CC)
VERBOSE =
@ENDIF
@IFEQ $(PURE_STATIC) 0
@ -99,25 +113,9 @@ CXXFLAGS += -Iinclude
@DO_EXPORT RUNCC RUNLD CXXFLAGS LDLIBS PICLDFLAGS VERBOSE SOCKETENGINE CORELDFLAGS
@DO_EXPORT SOURCEPATH BUILDPATH PURE_STATIC SPLIT_CC
# Default target
TARGET = all
@IFDEF M
HEADER = mod-header
FOOTER = mod-footer
@BSD_ONLY TARGET = modules/${M:S/.so$//}.so
@GNU_ONLY TARGET = modules/$(M:.so=).so
@ENDIF
@IFDEF T
HEADER =
FOOTER = target
TARGET = $(T)
@ENDIF
all: $(FOOTER)
target: $(HEADER)
target: $(HEADER) $(VERBOSE_HEADER)
$(MAKEENV) perl make/calcdep.pl
cd $(BUILDPATH); $(MAKEENV) $(MAKE) -f real.mk $(TARGET)
@ -139,15 +137,19 @@ debug-header:
@echo "*************************************"
mod-header:
@IFDEF PURE_STATIC
@IFEQ $(PURE_STATIC) 1
@echo 'Cannot build single modules in pure-static build'
@exit 1
@ENDIF
@echo 'Building single module:'
mod-footer: target
@echo 'To install, copy $(BUILDPATH)/$(TARGET) to $(MODPATH)'
@echo 'Or, run "make install"'
@if [ '$(BUILDPATH)'/modules/ -ef '$(MODPATH)' ]; then \
echo 'Build successful; load or reload the module to use'; \
else \
echo 'To install, copy $(BUILDPATH)/$(TARGET) to $(MODPATH)'; \
echo 'Or, run "make install"'; \
fi
std-header:
@echo "*************************************"
@ -179,30 +181,30 @@ install: target
echo ""; \
exit 1; \
fi
@-install -d -o $(INSTUID) -m $(INSTMODE_DIR) $(BASE)
@-install -d -o $(INSTUID) -m $(INSTMODE_DIR) $(BASE)/data
@-install -d -o $(INSTUID) -m $(INSTMODE_DIR) $(BASE)/logs
@-install -d -m $(INSTMODE_DIR) $(BINPATH)
@-install -d -m $(INSTMODE_DIR) $(CONPATH)
@-install -d -m $(INSTMODE_DIR) $(MODPATH)
[ $(BUILDPATH)/bin/ -ef $(BINPATH) ] || install -m $(INSTMODE_BIN) $(BUILDPATH)/bin/inspircd $(BINPATH)
@-install -d -o $(INSTUID) -m $(INSTMODE_DIR) '$(BASE)'
@-install -d -o $(INSTUID) -m $(INSTMODE_DIR) '$(BASE)'/data
@-install -d -o $(INSTUID) -m $(INSTMODE_DIR) '$(BASE)'/logs
@-install -d -m $(INSTMODE_DIR) '$(BINPATH)'
@-install -d -m $(INSTMODE_DIR) '$(CONPATH)'
@-install -d -m $(INSTMODE_DIR) '$(MODPATH)'
[ '$(BUILDPATH)'/bin/ -ef '$(BINPATH)' ] || install -m $(INSTMODE_BIN) '$(BUILDPATH)'/bin/inspircd '$(BINPATH)'
@IFEQ PURE_STATIC 0
[ $(BUILDPATH)/modules/ -ef $(MODPATH) ] || install -m $(INSTMODE_LIB) $(BUILDPATH)/modules/*.so $(MODPATH)
[ '$(BUILDPATH)'/modules/ -ef '$(MODPATH)' ] || install -m $(INSTMODE_LIB) '$(BUILDPATH)'/modules/*.so '$(MODPATH)'
@ENDIF
-install -m $(INSTMODE_BIN) @STARTSCRIPT@ $(BASE) 2>/dev/null
-install -m $(INSTMODE_LIB) tools/gdbargs $(BASE)/.gdbargs 2>/dev/null
-install -m $(INSTMODE_LIB) docs/*.example $(CONPATH)
-install -m $(INSTMODE_BIN) @STARTSCRIPT@ '$(BASE)' 2>/dev/null
-install -m $(INSTMODE_LIB) tools/gdbargs '$(BASE)'/.gdbargs 2>/dev/null
-install -m $(INSTMODE_LIB) docs/*.example '$(CONPATH)'
@echo ""
@echo "*************************************"
@echo "* INSTALL COMPLETE! *"
@echo "*************************************"
@echo 'Paths:'
@echo ' Base install:' $(BASE)
@echo ' Configuration:' $(CONPATH)
@echo ' Binaries:' $(BINPATH)
@echo ' Modules:' $(MODPATH)
@echo 'To start the ircd, run:' $(BASE)/inspircd start
@echo 'Remember to edit your config file:' $(CONPATH)/inspircd.conf
@echo ' Base install: $(BASE)'
@echo ' Configuration: $(CONPATH)'
@echo ' Binaries: $(BINPATH)'
@echo ' Modules: $(MODPATH)'
@echo 'To start the ircd, run: $(BASE)/inspircd start'
@echo 'Remember to edit your config file: $(CONPATH)/inspircd.conf'
@GNU_ONLY RCS_FILES = $(wildcard .git/index src/version.sh)
@BSD_ONLY RCS_FILES = src/version.sh
@ -221,8 +223,7 @@ clean:
deinstall:
-rm $(BINPATH)/inspircd
-rm $(MODPATH)/*.so
squeakyclean: distclean
@echo Configuration files and logs in ${BASE} were not removed
configureclean:
rm -f .config.cache
@ -237,6 +238,35 @@ configureclean:
distclean: clean configureclean
print-vars:
@echo 'Global settings:'
@echo ' SYSTEM = ${SYSTEM}'
@echo ' SOCKETENGINE = ${SOCKETENGINE}'
@echo ' PURE_STATIC = ${PURE_STATIC}'
@echo ' SPLIT_CC = ${SPLIT_CC}'
@echo ' TARGET = ${TARGET}'
@echo ' HEADER = ${HEADER}'
@echo ' FOOTER = ${FOOTER}'
@echo 'Compilation settings:'
@echo ' CC = ${CC}'
@echo ' RUNCC = ${RUNCC}'
@echo ' RUNLD = ${RUNLD}'
@echo ' CXXFLAGS = ${CXXFLAGS}'
@echo ' LDFLAGS = ${LDFLAGS}'
@echo ' LDLIBS = ${LDLIBS}'
@echo ' PICLDFLAGS = ${PICLDFLAGS}'
@echo ' CORELDFLAGS = ${CORELDFLAGS}'
@echo 'Paths:'
@echo ' SOURCEPATH = ${SOURCEPATH}'
@echo ' BUILDPATH = ${BUILDPATH}'
@echo ' BASE = ${BASE}'
@echo ' CONPATH = ${CONPATH}'
@echo ' MODPATH = ${MODPATH}'
@echo ' BINPATH = ${BINPATH}'
@echo 'Install:'
@echo ' INSTUID = ${INSTUID}'
@echo ' INSTMODE DIR/BIN/LIB = ${INSTMODE_DIR}/${INSTMODE_BIN}/${INSTMODE_LIB}'
help:
@echo 'InspIRCd Makefile'
@echo ''
@ -246,6 +276,7 @@ help:
@echo ' V=1 Show the full command being executed instead of "BUILD: dns.cpp"'
@echo ' D=1 Enable debug build, for module development or crash tracing'
@echo ' -j <N> Run a parallel build using N jobs'
@echo ' VAR=VALUE Override a Makefile setting; see "make print-vars" for values'
@echo ''
@echo 'User targets:'
@echo ' all Complete build of InspIRCd, without installing'
@ -264,4 +295,4 @@ help:
@echo ' deinstall Removes the files created by "make install"'
@echo
.PHONY: all target debug debug-header mod-header mod-footer std-header finishmessage install clean deinstall squeakyclean configureclean help
.PHONY: all target debug debug-header mod-header mod-footer std-header finishmessage install clean deinstall configureclean print-vars help