]> git.netwichtig.de Git - user/henk/code/inspircd.git/blobdiff - .Makefile.inc
Fix install of module .so files
[user/henk/code/inspircd.git] / .Makefile.inc
index 9a4f1d3a38051a6aa5c3be8a05f97d65ea6d4879..e8bf232b9fc194b451bf81ca3d156ee2e04596e7 100644 (file)
@@ -6,7 +6,9 @@
 #   Please do not edit unless you know what you're doing.
 #
 
-@GNU_ONLY COMPILE_ROOT = $(shell pwd)
+@GNU_ONLY MAKESTYLE = gnu
+@GNU_ONLY COMPILE_ROOT ?= $(shell pwd)
+@BSD_ONLY MAKESTYLE = bsd
 @BSD_ONLY COMPILE_ROOT != pwd
 
 @IFDEF D
     HEADER = debug-header
 @ENDIF
 
-@IFNDEF NICEFLAGS
-    NICEFLAGS = @FLAGS@
-@ENDIF
-
-@IFNDEF HEADER
-    HEADER = std-header
-@ENDIF
+NICEFLAGS ?= @FLAGS@
+HEADER ?= std-header
 
 NICEFLAGS += -I$(COMPILE_ROOT)/include
 
 CC = @CC@
 FLAGS = $(NICEFLAGS) -pedantic
+PICLDFLAGS = -fPIC -DPIC -shared -export-dynamic
+CORE_FLAGS = @CORE_FLAGS@
 LDLIBS = @LDLIBS@
 BASE = "@BASE_DIR@"
 CONPATH = "@CONFIG_DIR@"
@@ -33,19 +32,20 @@ MODPATH = "@MODULE_DIR@"
 BINPATH = "@BINARY_DIR@"
 LAUNCHDPATH = "/System/Library/LaunchDaemons"
 LIBPATH = "@LIBRARY_DIR@"
-MODULES = @MODULES@
 INSTMODE = 0755
+SOCKETENGINE = @SOCKETENGINE@
 @GNU_ONLY MAKEFLAGS += --no-print-directory
 
 @IFDEF V
     RUNCC = $(CC)
+    VERBOSE = -v
 @ELSE
     @GNU_ONLY MAKEFLAGS += --silent
+    @BSD_ONLY MAKE += -s
     RUNCC = $(COMPILE_ROOT)/make/run-cc.pl $(CC)
 @ENDIF
 
-@GNU_ONLY export COMPILE_ROOT RUNCC FLAGS NICEFLAGS CC LDLIBS MODULES MODPATH LIBPATH INSTMODE
-@BSD_ONLY MAKEARGS = -s 'RUNCC=${RUNCC}' 'FLAGS=${FLAGS}' 'NICEFLAGS=${NICEFLAGS}' 'CC=${CC}' 'LDLIBS=${LDLIBS}' 'MODULES=${MODULES}' 'MODPATH=${MODPATH}' 'LIBPATH=${LIBPATH}' 'INSTMODE=${INSTMODE}'
+@DO_EXPORT RUNCC FLAGS NICEFLAGS CC LDLIBS PICLDFLAGS VERBOSE SOCKETENGINE CORE_FLAGS
 
 # Default target
 
@@ -53,7 +53,15 @@ INSTMODE = 0755
    _all: module
 @ENDIF
 
-all: ircd mods finishmessage
+all: finishmessage
+
+alldep: $(HEADER)
+       @echo -n "Generating module dependencies..."
+       @$(MAKEENV) $(MAKE) -C src -f ../make/$(MAKESTYLE)-dep.mk alldep
+       @echo 'done'
+
+allreal: alldep
+       @$(MAKEENV) $(MAKE) -C src -f ../make/$(MAKESTYLE)-real.mk all
 
 debug:
        @${MAKE} D=1 all
@@ -82,14 +90,7 @@ std-header:
        @echo "*  while you wait for make to run?  *"
        @echo "*************************************"
 
-ircd: $(HEADER)
-       @${MAKE} -C src $(MAKEARGS) inspircd commands
-
-mods: $(HEADER)
-       @${MAKE} -C src/modules $(MAKEARGS)
-
-# Make this depend on 'ircd' and 'mods', so its always output last even with -j
-finishmessage: ircd mods
+finishmessage: allreal
        @echo ""
        @echo "*************************************"
        @echo "*        BUILD COMPLETE!            *"
@@ -98,14 +99,17 @@ finishmessage: ircd mods
        @echo "*         make install              *"
        @echo "*************************************"
 
-install: ircd mods@EXTRA_DIR@
+install: allreal@EXTRA_DIR@
        @-install -d -m $(INSTMODE) $(BASE)
        @-install -d -m $(INSTMODE) $(LIBPATH)
        @-install -d -m $(INSTMODE) $(BINPATH)
        @-install -d -m $(INSTMODE) $(CONPATH)
        @-install -d -m $(INSTMODE) $(MODPATH)
+       -install -m $(INSTMODE) src/commands/*.so $(LIBPATH)
+       -install -m $(INSTMODE) src/modules/*.so $(MODPATH)
        -install -m $(INSTMODE) @STARTSCRIPT@ $(@DESTINATION@) 2>/dev/null
-@INSTALL_LIST@ @echo ""
+@INSTALL_LIST@ -install -m $(INSTMODE) src/inspircd $(BINPATH)
+       @echo ""
        @echo "*************************************"
        @echo "*        INSTALL COMPLETE!          *"
        @echo "*                                   *"
@@ -121,19 +125,21 @@ module:
 
 clean:
        @echo Cleaning...
-       @rm -rf src/*.so src/*.dylib src/*.o src/inspircd src/modules/*.so src/modules/*.o *~ src/*~ src/modules/*~ src/modules/extra/*~ src/modes/*~ src/modes/*.o src/modes/*.a src/commands/*.so src/commands/*.o src/modules/*/*.o src/modules/*/*.so src/socketengines/*.o
+       @rm -f src/inspircd src/modes/modeclasses.a
+       @rm -f src/*.so src/modules/*.so src/commands/*.so src/modules/*/*.so
+       @rm -f src/*.o src/*/*.o src/modules/*/*.o
        @echo Completed.
 
 modclean:
-       rm -rf modules/*.so
-       rm -rf src/modules/*.so
-       rm -rf src/modules/*.o
-       rm -rf src/modules/*/*.so
-       rm -rf src/modules/*/*.o
-       rm -rf lib/*.so
-       rm -f bin/inspircd
+       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
+       -rm $(MODPATH)/*.so
 @UNINSTALL_LIST@
 
 squeakyclean: distclean