]> git.netwichtig.de Git - user/henk/code/inspircd.git/blob - .Makefile.inc
99cf6f6e2b4410640b85b4c59344967ad50c945c
[user/henk/code/inspircd.git] / .Makefile.inc
1 #               InspIRCd Main Makefile
2 #
3 #       (C) InspIRCd Development Team, 2002-2009
4 # This file is automagically generated by configure, from
5 #     .Makefile.inc. Any changes make will go away!
6 #   Please do not edit unless you know what you're doing.
7 #
8
9 @GNU_ONLY MAKESTYLE = gnu
10 @GNU_ONLY COMPILE_ROOT ?= $(shell pwd)
11 @BSD_ONLY MAKESTYLE = bsd
12 @BSD_ONLY COMPILE_ROOT != pwd
13
14 CC = @CC@
15 SYSTEM = @SYSTEM@
16 SOCKETENGINE = @SOCKETENGINE@
17 NICEFLAGS = -pipe -fPIC
18 LDLIBS = -pthread -lstdc++
19 SHARED = -shared -rdynamic
20 CORE_FLAGS = -rdynamic -L.
21 PICLDFLAGS = -fPIC -DPIC -shared -rdynamic
22 BASE = "@BASE_DIR@"
23 CONPATH = "@CONFIG_DIR@"
24 MODPATH = "@MODULE_DIR@"
25 BINPATH = "@BINARY_DIR@"
26 LAUNCHDPATH = "/System/Library/LaunchDaemons"
27 LIBPATH = "@LIBRARY_DIR@"
28 INSTMODE = 0755
29
30 @IFEQ $(CC) icc
31   NICEFLAGS += -Wshadow
32   FLAGS = $(NICEFLAGS)
33 @ELSE
34   NICEFLAGS += -Woverloaded-virtual -Wshadow -Wformat=2 -Wmissing-format-attribute -Wall
35   FLAGS = $(NICEFLAGS) -pedantic
36 @ENDIF
37
38
39 @IFEQ $(SYSTEM) linux
40   LDLIBS += -ldl
41 @ELSIFEQ $(SYSTEM) solaris
42   LDLIBS += -lsocket -lnsl -lrt -lresolv
43 @ELSIFEQ $(SYSTEM) sunos
44   LDLIBS += -lsocket -lnsl -lrt -lresolv
45 @ELSIFEQ $(SYSTEM) darwin
46   NICEFLAGS += -DDARWIN -frtti
47   LDLIBS += -ldl
48   SHARED = -bundle -twolevel_namespace -undefined dynamic_lookup
49   CORE_FLAGS = -dynamic -bind_at_load -L.
50 @ENDIF 
51
52 @IFDEF D
53     NICEFLAGS += -g3
54     HEADER = debug-header
55 @ELSE
56     NICEFLAGS += -g1
57     HEADER = std-header
58 @ENDIF
59
60 NICEFLAGS += -I$(COMPILE_ROOT)/include
61
62 @GNU_ONLY MAKEFLAGS += --no-print-directory
63
64 @IFDEF V
65     RUNCC = $(CC)
66     VERBOSE = -v
67 @ELSE
68     @GNU_ONLY MAKEFLAGS += --silent
69     @BSD_ONLY MAKE += -s
70     RUNCC = $(COMPILE_ROOT)/make/run-cc.pl $(CC)
71 @ENDIF
72
73 @DO_EXPORT RUNCC FLAGS NICEFLAGS CC LDLIBS PICLDFLAGS VERBOSE SOCKETENGINE CORE_FLAGS
74 @DO_EXPORT BASE CONPATH MODPATH BINPATH LIBPATH
75
76 # Default target
77
78 @IFDEF M
79     _all: module
80     @BSD_ONLY MODNAME = ${M:S/.so$//}
81     @GNU_ONLY MODNAME = $(M:.so=)
82 @ENDIF
83
84 all: finishmessage
85
86 alldep:
87         @$(MAKEENV) $(MAKE) -C src -f ../make/$(MAKESTYLE)-dep.mk alldep
88
89 allreal: $(HEADER) alldep
90         @$(MAKEENV) $(MAKE) -C src -f ../make/$(MAKESTYLE)-real.mk all
91
92 module:
93         cd src; if [ -d modules/$(MODNAME) ]; then ../make/calcdep.pl modules/$(MODNAME) modules/$(MODNAME)/*.cpp; else ../make/calcdep.pl modules/$(MODNAME).cpp; fi
94         $(MAKEENV) $(MAKE) -C src -f ../make/$(MAKESTYLE)-real.mk modules/$(MODNAME).so
95
96 debug:
97         @${MAKE} D=1 all
98
99 debug-header:
100         @echo "*************************************"
101         @echo "*    BUILDING WITH DEBUG SYMBOLS    *"
102         @echo "*                                   *"
103         @echo "*   This will take a *long* time.   *"
104         @echo "*  Please be aware that this build  *"
105         @echo "*  will consume a very large amount *"
106         @echo "*  of disk space (150MB+), and can  *"
107         @echo "*  run slower. Use the debug build  *"
108         @echo "*  for module development or if you *"
109         @echo "*    are experiencing problems.     *"
110         @echo "*                                   *"
111         @echo "*************************************"
112
113 std-header:
114         @echo "*************************************"
115         @echo "*       BUILDING INSPIRCD           *"
116         @echo "*                                   *"
117         @echo "*   This will take a *long* time.   *"
118         @echo "*     Why not read our wiki at      *"
119         @echo "*     http://wiki.inspircd.org      *"
120         @echo "*  while you wait for make to run?  *"
121         @echo "*************************************"
122
123 finishmessage: allreal
124         @echo ""
125         @echo "*************************************"
126         @echo "*        BUILD COMPLETE!            *"
127         @echo "*                                   *"
128         @echo "*   To install InspIRCd, type:      *"
129         @echo "*         make install              *"
130         @echo "*************************************"
131
132 install: allreal@EXTRA_DIR@
133         @-install -d -m $(INSTMODE) $(BASE)
134         @-install -d -m $(INSTMODE) $(LIBPATH)
135         @-install -d -m $(INSTMODE) $(BINPATH)
136         @-install -d -m $(INSTMODE) $(CONPATH)
137         @-install -d -m $(INSTMODE) $(MODPATH)
138         -install -m $(INSTMODE) src/commands/*.so $(LIBPATH)
139         -install -m $(INSTMODE) src/modules/*.so $(MODPATH)
140         -install -m $(INSTMODE) @STARTSCRIPT@ $(@DESTINATION@) 2>/dev/null
141         -install -m $(INSTMODE) src/inspircd $(BINPATH)
142         @$(MAKEENV) make/install-extras.pl install
143         @echo ""
144         @echo "*************************************"
145         @echo "*        INSTALL COMPLETE!          *"
146         @echo "*                                   *"
147         @echo "* It is safe to ignore any messages *"
148         @echo "* related to copying of conf files. *"
149         @echo "*                                   *"
150         @echo "* REMEMBER TO EDIT YOUR CONFIG FILE *"
151         @echo "*************************************"
152
153 clean:
154         @echo Cleaning...
155         @rm -f src/inspircd src/modes/modeclasses.a
156         @rm -f src/*.so src/modules/*.so src/commands/*.so src/modules/*/*.so
157         @rm -f src/*.o src/*/*.o src/modules/*/*.o
158         @rm -f src/.*.d src/*/.*.d src/modules/*/.*.d
159         @echo Completed.
160
161 modclean:
162         rm -f src/modules/*.so
163         rm -f src/modules/*.o
164         rm -f src/modules/*/*.so
165         rm -f src/modules/*/*.o
166
167 deinstall:
168         -rm $(BINPATH)/inspircd
169         -rm $(LIBPATH)/*.so
170         -rm $(MODPATH)/*.so
171         @make/install-extras.pl deinstall
172
173 squeakyclean: distclean
174
175 launchd_dir:
176         @-install -d -m $(INSTMODE) ${LAUNCHDPATH}
177
178 configureclean:
179         rm -f .config.cache
180         rm -f src/modules/Makefile
181         rm -f src/commands/Makefile
182         rm -f src/Makefile
183         -rm -f Makefile
184         rm -f BSDmakefile
185         rm -f GNUmakefile
186         rm -f include/inspircd_config.h
187         rm -f include/inspircd_se_config.h
188
189 distclean: modclean clean configureclean
190
191 help:
192         @echo 'InspIRCd Makefile'
193         @echo ''
194         @echo 'Use: ${MAKE} [flags] [targets]'
195         @echo ''
196         @echo 'Flags:'
197         @echo ' V=1       Show the full command being executed instead of "BUILD: dns.cpp"'
198         @echo ' D=1       Enable debug build, for module development or crash tracing'
199         @echo ' -j <N>    Run a parallel build using N jobs'
200         @echo ''
201         @echo 'User targets:'
202         @echo ' all       Complete build of InspIRCd, without installing'
203         @echo ' install   Build and install InspIRCd to the directory chosen in ./configure'
204         @echo '           Currently installs to ${BASE}'
205         @echo ' debug     Compile a debug build. Equivalent to "make D=1 all"'
206         @echo ' module    Builds a single module, which is specified by "M=m_modname"'
207         @echo '           The command "make M=m_modname" is a shortcut for this target'
208         @echo ''
209         @echo ' clean     Cleans object files produced by the compile'
210         @echo ' distclean Cleans all files produced by compile and ./configure'
211         @echo ' deinstall Removes the files created by "make install"'
212         @echo
213
214 .PHONY: all help debug debug-header std-header ircd mods finishmessage install module clean modclean deinstall squeakyclean launchd_dir configureclean