X-Git-Url: https://git.netwichtig.de/gitweb/?a=blobdiff_plain;f=make%2Ftemplate%2Fmain.mk;h=23daa7efc02a0d2069cc70f694b56958f1870571;hb=1a10d61b3de3020ddf15b02b87dc6905ef5037c6;hp=9a5f4db05e742e0d2df26782649cc88f39a15625;hpb=2916ae7c920c069ff180f0224b2dc953bbd32501;p=user%2Fhenk%2Fcode%2Finspircd.git diff --git a/make/template/main.mk b/make/template/main.mk index 9a5f4db05..23daa7efc 100644 --- a/make/template/main.mk +++ b/make/template/main.mk @@ -42,13 +42,16 @@ PICLDFLAGS = -fPIC -shared -rdynamic $(LDFLAGS) BASE = "$(DESTDIR)@BASE_DIR@" CONPATH = "$(DESTDIR)@CONFIG_DIR@" MODPATH = "$(DESTDIR)@MODULE_DIR@" +LOGPATH = "$(DESTDIR)@LOG_DIR@" +DATPATH = "$(DESTDIR)@DATA_DIR@" BINPATH = "$(DESTDIR)@BINARY_DIR@" +INSTALL = install INSTUID = @UID@ INSTMODE_DIR = 0755 INSTMODE_BIN = 0755 INSTMODE_LIB = 0644 -@IFEQ $(CC) icc +@IFEQ $(CC) icpc CXXFLAGS += -Wshadow @ELSE CXXFLAGS += -pedantic -Woverloaded-virtual -Wshadow -Wformat=2 -Wmissing-format-attribute -Wall @@ -61,11 +64,16 @@ INSTMODE_LIB = 0644 @IFEQ $(SYSTEM) gnukfreebsd LDLIBS += -ldl -lrt @ENDIF +@IFEQ $(SYSTEM) gnu + LDLIBS += -ldl -lrt +@ENDIF @IFEQ $(SYSTEM) solaris LDLIBS += -lsocket -lnsl -lrt -lresolv + INSTALL = ginstall @ENDIF @IFEQ $(SYSTEM) sunos LDLIBS += -lsocket -lnsl -lrt -lresolv + INSTALL = ginstall @ENDIF @IFEQ $(SYSTEM) darwin CXXFLAGS += -DDARWIN -frtti @@ -81,9 +89,17 @@ INSTMODE_LIB = 0644 D=0 @ENDIF +GCC6=@GCC6@ +@IFEQ $(GCC6) true + CXXFLAGS += -fno-delete-null-pointer-checks +@ENDIF + DBGOK=0 @IFEQ $(D) 0 - CXXFLAGS += -O2 -g1 + CXXFLAGS += -O2 +@IFEQ $(CC) g++ + CXXFLAGS += -g1 +@ENDIF HEADER = std-header DBGOK=1 @ENDIF @@ -113,8 +129,9 @@ CXXFLAGS += -Iinclude @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) + RUNCC = perl "$(SOURCEPATH)/make/run-cc.pl" $(CC) + RUNLD = perl "$(SOURCEPATH)/make/run-cc.pl" $(CC) + VERBOSE = @ENDIF @IFDEF PURE_STATIC @@ -148,7 +165,7 @@ all: $(FOOTER) target: $(HEADER) $(MAKEENV) perl make/calcdep.pl - cd $(BUILDPATH); $(MAKEENV) $(MAKE) -f real.mk $(TARGET) + cd "$(BUILDPATH)"; $(MAKEENV) $(MAKE) -f real.mk $(TARGET) debug: @${MAKE} D=1 all @@ -208,19 +225,22 @@ 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)/examples - @-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) $(DATPATH) + @-$(INSTALL) -d -o $(INSTUID) -m $(INSTMODE_DIR) $(LOGPATH) + @-$(INSTALL) -d -m $(INSTMODE_DIR) $(BINPATH) + @-$(INSTALL) -d -m $(INSTMODE_DIR) $(CONPATH)/examples/aliases + @-$(INSTALL) -d -m $(INSTMODE_DIR) $(CONPATH)/examples/modules + @-$(INSTALL) -d -m $(INSTMODE_DIR) $(MODPATH) + [ "$(BUILDPATH)/bin/" -ef $(BINPATH) ] || $(INSTALL) -m $(INSTMODE_BIN) "$(BUILDPATH)/bin/inspircd" $(BINPATH) @IFNDEF PURE_STATIC - [ $(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)/examples + -$(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/conf/*.example $(CONPATH)/examples + -$(INSTALL) -m $(INSTMODE_LIB) docs/conf/aliases/*.example $(CONPATH)/examples/aliases + -$(INSTALL) -m $(INSTMODE_LIB) docs/conf/modules/*.example $(CONPATH)/examples/modules @echo "" @echo "*************************************" @echo "* INSTALL COMPLETE! *" @@ -230,6 +250,7 @@ install: target @echo ' Configuration:' $(CONPATH) @echo ' Binaries:' $(BINPATH) @echo ' Modules:' $(MODPATH) + @echo ' Data:' $(DATPATH) @echo 'To start the ircd, run:' $(BASE)/inspircd start @echo 'Remember to create your config file:' $(CONPATH)/inspircd.conf @echo 'Examples are available at:' $(CONPATH)/examples/ @@ -242,30 +263,34 @@ GNUmakefile BSDmakefile: make/template/main.mk configure $(RCS_FILES) clean: @echo Cleaning... - -rm -f $(BUILDPATH)/bin/inspircd $(BUILDPATH)/include $(BUILDPATH)/real.mk - -rm -rf $(BUILDPATH)/obj $(BUILDPATH)/modules - @-rmdir $(BUILDPATH)/bin 2>/dev/null - @-rmdir $(BUILDPATH) 2>/dev/null + -rm -f "$(BUILDPATH)/bin/inspircd" "$(BUILDPATH)/include" "$(BUILDPATH)/real.mk" + -rm -rf "$(BUILDPATH)/obj" "$(BUILDPATH)/modules" + @-rmdir "$(BUILDPATH)/bin" 2>/dev/null + @-rmdir "$(BUILDPATH)" 2>/dev/null @echo Completed. deinstall: - -rm $(BINPATH)/inspircd - -rm $(MODPATH)/*.so + -rm -f $(BINPATH)/inspircd + -rm -rf $(CONPATH)/examples + -rm -f $(MODPATH)/cmd_*.so + -rm -f $(MODPATH)/m_*.so + -rm -f $(BASE)/.gdbargs + -rm -f $(BASE)/org.inspircd.plist squeakyclean: distclean configureclean: rm -f .config.cache - rm -f src/modules/Makefile - rm -f src/commands/Makefile - rm -f src/Makefile - -rm -f Makefile rm -f BSDmakefile rm -f GNUmakefile rm -f include/inspircd_config.h rm -f include/inspircd_version.h + rm -f inspircd + -rm -f org.inspircd.plist distclean: clean configureclean + -rm -rf "$(SOURCEPATH)/run" + find "$(SOURCEPATH)/src/modules" -type l | xargs rm -f help: @echo 'InspIRCd Makefile' @@ -291,9 +316,10 @@ help: @echo ' Multiple targets may be separated by a space' @echo '' @echo ' clean Cleans object files produced by the compile' - @echo ' distclean Cleans all files produced by compile and ./configure' - @echo ' Note: this includes the Makefile' + @echo ' distclean Cleans all generated files (build, configure, run, etc)' @echo ' deinstall Removes the files created by "make install"' @echo +.NOTPARALLEL: + .PHONY: all target debug debug-header mod-header mod-footer std-header finishmessage install clean deinstall squeakyclean configureclean help