X-Git-Url: https://git.netwichtig.de/gitweb/?a=blobdiff_plain;f=.Makefile.inc;h=901ced4fb214b9300d5772572d5165a4d325cf65;hb=6278262baaed06e2acf134c53ed0485136d61f50;hp=be9d7b3c6169d8c7959ea625edaf99fcfe124dba;hpb=9de77615d68f0cdc1402e828e828c67aa4699f60;p=user%2Fhenk%2Fcode%2Finspircd.git diff --git a/.Makefile.inc b/.Makefile.inc index be9d7b3c6..901ced4fb 100644 --- a/.Makefile.inc +++ b/.Makefile.inc @@ -14,11 +14,12 @@ CC = @CC@ SYSTEM = @SYSTEM@ SOCKETENGINE = @SOCKETENGINE@ -NICEFLAGS = -pipe -fPIC +CXXFLAGS = -pipe -fPIC -DPIC LDLIBS = -pthread -lstdc++ +LDFLAGS = SHARED = -shared -rdynamic -CORE_FLAGS = -rdynamic -L. -PICLDFLAGS = -fPIC -DPIC -shared -rdynamic +CORELDFLAGS = -rdynamic -L. $(LDFLAGS) +PICLDFLAGS = -fPIC -shared -rdynamic $(LDFLAGS) BASE = "@BASE_DIR@" CONPATH = "@CONFIG_DIR@" MODPATH = "@MODULE_DIR@" @@ -28,11 +29,9 @@ LIBPATH = "@LIBRARY_DIR@" INSTMODE = 0755 @IFEQ $(CC) icc - NICEFLAGS += -Wshadow - FLAGS = $(NICEFLAGS) + CXXFLAGS += -Wshadow @ELSE - NICEFLAGS += -Woverloaded-virtual -Wshadow -Wformat=2 -Wmissing-format-attribute -Wall - FLAGS = $(NICEFLAGS) -pedantic + CXXFLAGS += -pedantic -Woverloaded-virtual -Wshadow -Wformat=2 -Wmissing-format-attribute -Wall @ENDIF @@ -43,21 +42,22 @@ INSTMODE = 0755 @ELSIFEQ $(SYSTEM) sunos LDLIBS += -lsocket -lnsl -lrt -lresolv @ELSIFEQ $(SYSTEM) darwin - NICEFLAGS += -DDARWIN -frtti + CXXFLAGS += -DDARWIN -frtti LDLIBS += -ldl SHARED = -bundle -twolevel_namespace -undefined dynamic_lookup CORE_FLAGS = -dynamic -bind_at_load -L. @ENDIF @IFDEF D - NICEFLAGS += -g3 + CXXFLAGS += -g3 HEADER = debug-header @ELSE - NICEFLAGS += -g1 + CXXFLAGS += -g1 HEADER = std-header @ENDIF +FOOTER = finishmessage -NICEFLAGS += -I$(COMPILE_ROOT)/include +CXXFLAGS += -I$(COMPILE_ROOT)/include @GNU_ONLY MAKEFLAGS += --no-print-directory @@ -70,34 +70,32 @@ NICEFLAGS += -I$(COMPILE_ROOT)/include RUNCC = $(COMPILE_ROOT)/make/run-cc.pl $(CC) @ENDIF -@DO_EXPORT RUNCC FLAGS NICEFLAGS CC LDLIBS PICLDFLAGS VERBOSE SOCKETENGINE CORE_FLAGS +@DO_EXPORT RUNCC CXXFLAGS CC LDLIBS PICLDFLAGS VERBOSE SOCKETENGINE CORELDFLAGS @DO_EXPORT BASE CONPATH MODPATH BINPATH LIBPATH # Default target +TARGET = all @IFDEF M - _all: module - @BSD_ONLY MODNAME = ${M:S/.so$//} - @GNU_ONLY MODNAME = $(M:.so=) + HEADER = mod-header + FOOTER = mod-footer + @BSD_ONLY TARGET = modules/${M:S/.so$//}.so + @GNU_ONLY TARGET = modules/$(M:.so=).so @ENDIF -@IFDEF F - _all: single +@IFDEF T + HEADER = + FOOTER = target + TARGET = $(T) @ENDIF -all: finishmessage +all: $(FOOTER) -alldep: - @$(MAKEENV) $(MAKE) -C src -f ../make/$(MAKESTYLE)-dep.mk alldep +dep: + @cd src; ../make/calcdep.pl `perl -e 'print join " ", <*.cpp>, , , , '` socketengines/$(SOCKETENGINE).cpp threadengines/threadengine_pthread.cpp -allreal: $(HEADER) alldep - @$(MAKEENV) $(MAKE) -C src -f ../make/$(MAKESTYLE)-real.mk all - -module: alldep - $(MAKEENV) $(MAKE) -C src -f ../make/$(MAKESTYLE)-real.mk modules/$(MODNAME).so - -single: alldep - $(MAKEENV) $(MAKE) -C src -f ../make/$(MAKESTYLE)-real.mk $(F) +target: $(HEADER) dep + $(MAKEENV) $(MAKE) -C src -f ../make/$(MAKESTYLE)-real.mk $(TARGET) debug: @${MAKE} D=1 all @@ -116,6 +114,13 @@ debug-header: @echo "* *" @echo "*************************************" +mod-header: + @echo 'Building single module:' + +mod-footer: target + @echo 'To install, copy src/$(TARGET) to $(MODPATH)' + @echo 'Or, run "make install"' + std-header: @echo "*************************************" @echo "* BUILDING INSPIRCD *" @@ -126,7 +131,7 @@ std-header: @echo "* while you wait for make to run? *" @echo "*************************************" -finishmessage: allreal +finishmessage: target @echo "" @echo "*************************************" @echo "* BUILD COMPLETE! *" @@ -135,7 +140,7 @@ finishmessage: allreal @echo "* make install *" @echo "*************************************" -install: allreal@EXTRA_DIR@ +install: target@EXTRA_DIR@ @-install -d -m $(INSTMODE) $(BASE) @-install -d -m $(INSTMODE) $(LIBPATH) @-install -d -m $(INSTMODE) $(BINPATH) @@ -164,12 +169,6 @@ clean: @rm -f src/.*.d src/*/.*.d src/modules/*/.*.d @echo Completed. -modclean: - rm -f src/modules/*.so - rm -f src/modules/*.o - rm -f src/modules/*/*.so - rm -f src/modules/*/*.o - deinstall: -rm $(BINPATH)/inspircd -rm $(LIBPATH)/*.so @@ -192,7 +191,7 @@ configureclean: rm -f include/inspircd_config.h rm -f include/inspircd_se_config.h -distclean: modclean clean configureclean +distclean: clean configureclean help: @echo 'InspIRCd Makefile' @@ -209,15 +208,17 @@ help: @echo ' install Build and install InspIRCd to the directory chosen in ./configure' @echo ' Currently installs to ${BASE}' @echo ' debug Compile a debug build. Equivalent to "make D=1 all"' - @echo ' module Builds a single module, which is specified by "M=m_modname"' - @echo ' The command "make M=m_modname" is a shortcut for this target' - @echo ' single Builds a single target, which is specified by "F=filename"' - @echo ' The command "make F=filename" is a shortcut for this target' - @echo ' Paths are relative to the src/ directory' + @echo '' + @echo ' M=m_foo Builds a single module' + @echo ' T=target Builds a user-specified target' + @echo ' Target can be a file path relative to src/, or one of:' + @echo ' inspircd commands modules' + @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 ' deinstall Removes the files created by "make install"' @echo -.PHONY: all help debug debug-header std-header ircd mods finishmessage install module single clean modclean deinstall squeakyclean launchd_dir configureclean +.PHONY: all dep target debug debug-header mod-header mod-footer std-header finishmessage install clean deinstall squeakyclean launchd_dir configureclean help