CC = @CC@
SYSTEM = @SYSTEM@
+BUILDPATH = @BUILD_DIR@
SOCKETENGINE = @SOCKETENGINE@
CXXFLAGS += -pipe -fPIC -DPIC
LDLIBS = -pthread -lstdc++
@ENDIF
FOOTER = finishmessage
-CXXFLAGS += -I../include
+CXXFLAGS += -Iinclude
@GNU_ONLY MAKEFLAGS += --no-print-directory
+@GNU_ONLY SOURCEPATH = $(shell /bin/pwd)
+@BSD_ONLY SOURCEPATH != /bin/pwd
+
@IFDEF V
RUNCC = $(CC)
VERBOSE = -v
@ELSE
@GNU_ONLY MAKEFLAGS += --silent
@BSD_ONLY MAKE += -s
- RUNCC = ../make/run-cc.pl $(CC)
+ RUNCC = $(SOURCEPATH)/make/run-cc.pl $(CC)
@ENDIF
@DO_EXPORT RUNCC CXXFLAGS CC LDLIBS PICLDFLAGS VERBOSE SOCKETENGINE CORELDFLAGS
-@DO_EXPORT BASE CONPATH MODPATH BINPATH
+@DO_EXPORT BASE CONPATH MODPATH BINPATH SOURCEPATH BUILDPATH
# Default target
TARGET = all
all: $(FOOTER)
target: $(HEADER)
-@GNU_ONLY $(MAKEENV) $(MAKE) -C src -f ../make/gnu-real.mk $(TARGET)
-@BSD_ONLY $(MAKEENV) $(MAKE) -C src -f ../make/bsd-real.mk $(TARGET)
+ $(MAKEENV) perl make/calcdep.pl
+ $(MAKEENV) $(MAKE) -C $(BUILDPATH) -f real.mk $(TARGET)
debug:
@${MAKE} D=1 all
@echo 'Building single module:'
mod-footer: target
- @echo 'To install, copy src/$(TARGET) to $(MODPATH)'
+ @echo 'To install, copy $(BUILDPATH)/$(TARGET) to $(MODPATH)'
@echo 'Or, run "make install"'
std-header:
@-install -d -m $(INSTMODE) $(BINPATH)
@-install -d -m $(INSTMODE) $(CONPATH)
@-install -d -m $(INSTMODE) $(MODPATH)
- -install -m $(INSTMODE) src/commands/*.so $(MODPATH)
- -install -m $(INSTMODE) src/modules/*.so $(MODPATH)
+ -install -m $(INSTMODE) $(BUILDPATH)/modules/*.so $(MODPATH)
+ -install -m $(INSTMODE) $(BUILDPATH)/bin/inspircd $(BINPATH)
-install -m $(INSTMODE) @STARTSCRIPT@ $(@DESTINATION@) 2>/dev/null
- -install -m $(INSTMODE) src/inspircd $(BINPATH)
@$(MAKEENV) make/install-extras.pl install
@echo ""
@echo "*************************************"
clean:
@echo Cleaning...
@rm -f src/inspircd src/modes/modeclasses.a
- @rm -f src/*.so src/modules/*.so src/commands/*.so src/modules/*/*.so
+ @rm -f src/*.so src/modules/*.so src/commands/*.so
@rm -f src/*.o src/*/*.o src/modules/*/*.o
@rm -f src/.*.d src/*/.*.d src/modules/*/.*.d
+ @rm -f $(BUILDPATH)/bin/inspircd $(BUILDPATH)/include $(BUILDPATH)/real.mk
+ @rm -rf $(BUILDPATH)/obj $(BUILDPATH)/modules
+ @-rmdir $(BUILDPATH)/bin
+ @-rmdir $(BUILDPATH)
@echo Completed.
deinstall:
rm -f BSDmakefile
rm -f GNUmakefile
rm -f include/inspircd_config.h
+ rm -f include/inspircd_version.h
rm -f include/inspircd_se_config.h
distclean: clean configureclean
@echo ' Currently installs to ${BASE}'
@echo ' debug Compile a debug build. Equivalent to "make D=1 all"'
@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 ' M=m_foo Builds a single module (cmd_foo also works here)'
+ @echo ' T=target Builds a user-specified target, such as "inspircd" or "modules"'
+ @echo ' Other targets are specified by their path in the build directory'
@echo ' Multiple targets may be separated by a space'
@echo ''
@echo ' clean Cleans object files produced by the compile'