build: link nums only when BT is enabled (ref #27)
[mldonkey.git] / config / Makefile.in
blobaade4df182191a4e93a88ea655d158b53fb70103
1 changequote([[, ]])
2 #
5 # Do not edit Makefile, edit config/Makefile.in instead
14 include config/Makefile.config
16 ifneq ("$(GLIBC_VERSION)" , "")
17 GLIBC_VERSION_ARCH = "_glibc-"$(GLIBC_VERSION)
18 endif
20 ##################################################################
22 ## Bytecode or Native ?
24 ##################################################################
26 NO_LIBS_byte=
27 NO_LIBS_opt=
28 NO_STATIC_LIBS_opt=
29 NO_CMXA=
31 LIBS_byte=-custom bigarray.cma unix.cma str.cma
32 LIBS_opt= bigarray.cmxa unix.cmxa str.cmxa
34 BIGARRAY_LIBS_opt=bigarray.cmxa
35 BIGARRAY_LIBS_byte=bigarray.cma
37 CRYPT_LIBS_opt=-cclib -lcrypt
38 CRYPT_LIBS_byte=-cclib -lcrypt
41 #######################################################################
43 ## General options
45 #######################################################################
47 ifeq ("$(GUI)", "newgui2")
48 ICONS_CHOICE=icons/rsvg
49 SRC_GUI=src/gtk2/gui
50 GUI_CODE=GTK2GUI
51 GTK=gtk2
52 else
53 CONFIGWIN=src/gtk/configwin
54 GPATTERN=src/gtk/gpattern
55 OKEY=src/gtk/okey
56 GTK=gtk
57 ifeq ("$(GUI)", "newgui1")
58 SRC_PROGRESS=src/gtk/progress
59 ICONS_CHOICE=icons/tux
60 GUI_CODE=NEWGUI
61 SRC_GUI=src/gtk/newgui
62 else
63 SRC_GUI=src/gtk/gui
64 ICONS_CHOICE=icons/kde
65 GUI_CODE=OLDGUI
66 endif
67 endif
70 EXTLIB=src/utils/extlib
71 CDK=src/utils/cdk
72 BITSTRING=src/utils/bitstring
73 LIB=src/utils/lib
74 NET=src/utils/net
75 RSS=src/utils/ocamlrss
76 XML=src/utils/xml-light
78 COMMON=src/daemon/common
79 DRIVER=src/daemon/driver
80 MP3=src/utils/mp3tagui
82 SRC_DONKEY=src/networks/donkey
83 SRC_BITTORRENT=src/networks/bittorrent
84 SRC_OPENNAP=src/networks/opennap
85 SRC_GNUTELLA=src/networks/gnutella
86 SRC_GNUTELLA2=src/networks/gnutella2
87 SRC_OPENFT=src/networks/openFT
88 SRC_FASTTRACK=src/networks/fasttrack
89 SRC_SOULSEEK=src/networks/soulseek
90 SRC_DIRECTCONNECT=src/networks/direct_connect
91 SRC_FILETP=src/networks/fileTP
93 SUBDIRS=$(EXTLIB) $(CDK) $(BITSTRING) $(LIB) $(RSS) $(XML) $(NET) tools \
94 $(COMMON) $(DRIVER) $(MP3) src/config/$(OS_FILES)
96 INCLUDES += $(foreach file, $(SUBDIRS), -I $(file)) -I +camlp4
98 CFLAGS:=$(CFLAGS) $(CONFIG_INCLUDES) $(GTKCFLAGS) $(GD_CFLAGS)
100 TARGETS= mlnet$(EXE)
102 ifeq ("$(OS_FILES2)", "mingw")
104 RESFILE= resfile.o
106 endif
108 ifeq ("$(OS_FILES2)", "cygwin")
110 RESFILE= resfile.o
112 endif
114 ifeq ("$(DEVEL)", "yes")
116 TARGETS += mldonkey_installer$(EXE)
118 endif
121 #######################################################################
123 ## Objects files for "mldonkey"
125 #######################################################################
127 LIBS_flags += -ccopt "$(LDFLAGS) $(CPPFLAGS)" -cclib "$(LIBS)"
129 ifeq ("$(OS_FILES2)", "mingw")
130 LIBS_flags += -cclib "-lws2_32 -lgdi32 -luser32 -ladvapi32 -lwsock32 -limm32 -lshell32 -lole32 resfile.o"
131 endif
133 ifeq ("$(OS_FILES2)", "cygwin")
134 LIBS_flags += -cclib "resfile.o"
135 endif
137 BITSTRING_SRCS = \
138 $(BITSTRING)/bitstring.ml \
139 $(BITSTRING)/bitstring_c.c
141 ifeq ("$(BZIP2)", "yes")
142 LIBS_flags += -cclib -lbz2
143 CDK_SRCS += $(CDK)/bzlib.ml $(CDK)/bzip2.ml
144 endif
146 CDK_SRCS += $(CDK)/zlib.ml $(CDK)/zip.ml $(CDK)/gzip.ml $(CDK)/zlibstubs.c $(CDK)/tar.mlcpp
148 CDK_SRCS += $(LIB)/autoconf.ml
151 CDK_SRCS+= $(LIB)/fifo.ml $(CDK)/arg2.ml $(LIB)/syslog.ml \
152 $(CDK)/printexc2.ml $(CDK)/printf2.ml \
153 $(CDK)/heap.ml $(CDK)/genlex2.ml \
154 $(CDK)/filepath.ml $(CDK)/string2.ml \
155 $(CDK)/filename2.ml $(CDK)/array2.ml $(CDK)/hashtbl2.ml \
156 $(CDK)/unix2.ml $(CDK)/file.ml \
157 $(CDK)/heap_c.c $(CDK)/list2.ml
159 EXTLIB_SRCS += $(EXTLIB)/IO.ml
161 ifneq ("$(PTHREAD_CFLAGS)" , "")
162 CFLAGS += $(PTHREAD_CFLAGS)
163 LIBS_flags += -ccopt "$(PTHREAD_CFLAGS)"
164 # LIBS_byte += -ccopt "$(PTHREAD_CFLAGS)"
165 endif
167 ifneq ("$(PTHREAD_MINGW_CFLAGS)" , "")
168 CFLAGS += $(PTHREAD_MINGW_CFLAGS)
169 endif
171 ifneq ("$(PTHREAD_LIBS)" , "")
172 LIBS_flags += -cclib "$(PTHREAD_LIBS)"
173 # LIBS_byte += -cclib "$(PTHREAD_LIBS)"
174 endif
176 MP3TAG_SRCS= $(MP3)/mp3_info.ml $(MP3)/mp3_genres.ml \
177 $(MP3)/mp3_misc.ml\
178 $(MP3)/mp3_tag.ml $(MP3)/mp3tag.ml
181 LIB_SRCS= \
182 src/config/$(OS_FILES)/mlUnix.ml \
183 src/config/$(OS_FILES)/os_stubs_c.c \
184 $(LIB)/bitv.ml \
185 $(LIB)/intmap.ml $(LIB)/stringMap.ml \
186 $(LIB)/int64ops.ml $(LIB)/options.ml4 \
187 $(LIB)/levenshtein.ml \
188 $(LIB)/intset.ml \
189 $(LIB)/store.ml \
190 $(LIB)/indexer.ml $(LIB)/indexer1.ml $(LIB)/indexer2.ml \
191 $(LIB)/misc2.mlcpp $(LIB)/misc.ml $(LIB)/unix32.ml $(LIB)/md4.ml \
192 $(LIB)/http_lexer.mll $(LIB)/url.ml \
193 $(RSS)/rss_date.ml \
194 $(LIB)/date.ml $(LIB)/fst_hash.c \
195 $(LIB)/md4_comp.c $(LIB)/md4_c.c \
196 $(LIB)/charsetstubs.c $(LIB)/charset.ml \
197 $(LIB)/gettext.ml4 $(LIB)/md5_c.c $(LIB)/sha1_c.c \
198 $(LIB)/tiger.c \
199 $(LIB)/stubs_c.c $(LIB)/set2.ml $(LIB)/queues.ml \
200 $(LIB)/verificationBitmap.ml
202 ifeq ("$(MAGIC)", "yes")
203 MAGIC_LIBS_flags += -cclib -lmagic
204 MAGIC_SRCS = $(LIB)/magiclib.ml $(LIB)/magic_magic.ml $(LIB)/magiclib_stub.c
205 else
206 MAGIC_SRCS = $(LIB)/magic_nomagic.ml
207 endif
208 MAGIC_SRCS += $(LIB)/magic.ml
210 NET_SRCS = \
211 $(NET)/basicSocket.ml \
212 $(NET)/ip.ml $(NET)/ip_set.ml $(NET)/geoip.ml $(NET)/base64.ml $(NET)/mailer.ml \
213 $(NET)/anyEndian.ml $(NET)/bigEndian.ml $(NET)/littleEndian.ml \
214 $(NET)/tcpBufferedSocket.ml \
215 $(NET)/tcpServerSocket.ml \
216 $(NET)/udpSocket.ml $(NET)/http_server.ml $(NET)/http_client.ml \
217 $(NET)/cobs.ml \
218 $(NET)/terminal.ml
220 XML_SRCS= \
221 $(XML)/xml_types.ml $(XML)/xml_parser.mly $(XML)/xml_lexer.mll \
222 $(XML)/xml_dtd.ml $(XML)/xmlParser.ml $(XML)/xml.ml
224 RSS_SRCS= \
225 $(RSS)/rss_messages.ml $(RSS)/rss_types.ml $(RSS)/rss_io.ml $(RSS)/rss.ml
227 COMMON_SRCS = \
228 $(XML_SRCS) $(RSS_SRCS) \
229 $(COMMON)/commonTypes.ml \
230 $(COMMON)/guiTypes.ml \
231 $(COMMON)/guiProto.ml \
232 $(COMMON)/commonEvent.ml \
233 $(COMMON)/commonOptions.ml \
234 $(COMMON)/commonPictures.ml \
235 $(COMMON)/commonUserDb.ml \
236 $(COMMON)/commonMessages.ml \
237 $(COMMON)/commonGlobals.ml \
238 $(COMMON)/commonBitzi.ml \
239 $(COMMON)/guiDecoding.ml \
240 $(COMMON)/guiEncoding.ml \
241 $(COMMON)/giftLexer.mll \
242 $(COMMON)/giftParser.mly \
243 $(COMMON)/giftEncoding.ml \
244 $(COMMON)/giftDecoding.ml \
245 $(COMMON)/commonHasher.ml \
246 $(COMMON)/commonHosts.ml \
247 $(COMMON)/commonIndexing.ml \
248 $(COMMON)/commonHasher_c.c
250 COMMON_CLIENT_SRCS= \
251 $(NET)/upnpClient.ml \
252 $(NET)/upnp_stubs.c \
253 $(COMMON)/commonUser.ml \
254 $(COMMON)/commonNetwork.ml \
255 $(COMMON)/commonServer.ml \
256 $(COMMON)/commonClient.ml \
257 $(COMMON)/commonFile.ml \
258 $(COMMON)/commonResult.ml \
259 $(COMMON)/commonWeb.ml \
260 $(COMMON)/commonBlocking.ml \
261 $(COMMON)/commonComplexOptions.ml \
262 $(COMMON)/commonShared.ml \
263 $(COMMON)/commonRoom.ml \
264 $(COMMON)/commonSearch.ml \
265 $(COMMON)/commonMultimedia.ml \
266 $(COMMON)/commonSwarming.ml \
267 $(COMMON)/commonInteractive.ml \
268 $(COMMON)/commonChunks.ml \
269 $(COMMON)/commonDownloads.ml \
270 $(COMMON)/commonUploads.ml \
271 $(COMMON)/commonSources.ml \
272 $(COMMON)/commonStats.ml
274 all: Makefile config/Makefile.config $(TARGET_TYPE)
276 config/configure: config/configure.in
277 cd config; autoconf
279 ifeq ("$(CONFIGURE_RUN)" , "yes")
281 config/Makefile.config: config/configure config/Makefile.config.in $(LIB)/autoconf.ml.new.in packages/rpm/Makefile.in
282 ./configure $(CONFIGURE_ARGUMENTS)
284 else
286 config/Makefile.config: Makefile config/configure config/Makefile.config.in
287 @echo '******************************************'
288 @echo
289 @echo
290 @echo ' You should rerun ./configure now '
291 @echo
292 @echo
293 @echo '******************************************'
294 endif
296 Makefile: config/Makefile.in
297 (cd config; m4 Makefile.in > ../Makefile)
299 #######################################################################
301 # PLUGINS
303 #######################################################################
305 MAIN_SRCS=$(COMMON)/commonMain.ml
307 ifeq ("$(DONKEY_SUI)", "yes")
308 CRYPTOPP_LIBS_flags += -cc '$(CXX) $(CXXFLAGS)' -ccopt '$(CRYPTOPPFLAGS)'
309 DONKEY_SRCS += $(LIB)/CryptoPP.cc $(LIB)/CryptoPP_stubs.c $(SRC_DONKEY)/donkeySui1.ml $(SRC_DONKEY)/donkeySui.ml
310 else
311 DONKEY_SRCS += $(SRC_DONKEY)/donkeySui2.ml $(SRC_DONKEY)/donkeySui.ml
312 endif
314 DONKEY_SRCS += \
316 $(SRC_DONKEY)/donkeyTypes.ml \
317 $(SRC_DONKEY)/donkeyOptions.ml \
318 $(SRC_DONKEY)/donkeyMftp.ml \
319 $(SRC_DONKEY)/donkeyImport.ml \
320 $(SRC_DONKEY)/donkeyOpenProtocol.ml \
321 $(SRC_DONKEY)/donkeyProtoClient.ml \
322 $(SRC_DONKEY)/donkeyProtoServer.ml \
323 $(SRC_DONKEY)/donkeyProtoUdp.ml \
324 $(SRC_DONKEY)/donkeyPandora.ml \
326 $(SRC_DONKEY)/donkeyGlobals.ml \
327 $(SRC_DONKEY)/donkeyProtoCom.ml \
329 $(SRC_DONKEY)/donkeyComplexOptions.ml \
330 $(SRC_DONKEY)/donkeySupernode.ml \
331 $(SRC_DONKEY)/donkeyShare.ml \
332 $(SRC_DONKEY)/donkeyReliability.ml \
333 $(SRC_DONKEY)/donkeyThieves.ml \
334 $(SRC_DONKEY)/donkeyStats.ml \
335 $(SRC_DONKEY)/donkeyOneFile.ml \
337 $(SRC_DONKEY)/donkeyOvernetImport.ml \
338 $(SRC_DONKEY)/donkeyNodesDat.ml \
339 $(SRC_DONKEY)/donkeyOvernet.ml \
340 $(SRC_DONKEY)/donkeyProtoKademlia.ml \
341 $(SRC_DONKEY)/donkeyClient.ml \
342 $(SRC_DONKEY)/donkeyProtoOvernet.ml \
343 $(SRC_DONKEY)/donkeyUdp.ml \
344 $(SRC_DONKEY)/donkeyFiles.ml \
345 $(SRC_DONKEY)/donkeyServers.ml \
346 $(SRC_DONKEY)/donkeySearch.ml \
347 $(SRC_DONKEY)/donkeyInteractive.ml \
348 $(SRC_DONKEY)/donkeyMain.ml
351 OPENNAP_SRCS= \
352 $(SRC_OPENNAP)/napigator.mll \
353 $(SRC_OPENNAP)/winmx_xor_c.c \
354 $(SRC_OPENNAP)/opennapTypes.ml \
355 $(SRC_OPENNAP)/opennapProtocol.ml \
356 $(SRC_OPENNAP)/opennapOptions.ml \
357 $(SRC_OPENNAP)/opennapGlobals.ml \
358 $(SRC_OPENNAP)/opennapComplexOptions.ml \
359 $(SRC_OPENNAP)/opennapClients.ml \
360 $(SRC_OPENNAP)/opennapServers.ml \
361 $(SRC_OPENNAP)/opennapInteractive.ml \
362 $(SRC_OPENNAP)/opennapMain.ml
364 GNUTELLA_SRCS= \
365 $(SRC_GNUTELLA)/gnutellaNetwork.ml \
366 $(SRC_GNUTELLA)/gnutellaTypes.ml \
367 $(SRC_GNUTELLA)/gnutellaOptions.ml \
368 $(SRC_GNUTELLA)/gnutellaGlobals.ml \
369 $(SRC_GNUTELLA)/gnutellaComplexOptions.ml \
370 $(SRC_GNUTELLA)/gnutellaFunctions.ml \
371 $(SRC_GNUTELLA)/gnutellaProtocol.ml \
372 $(SRC_GNUTELLA)/gnutellaProto.ml \
373 $(SRC_GNUTELLA)/gnutellaClients.ml \
374 $(SRC_GNUTELLA)/gnutellaPandora.ml \
375 $(SRC_GNUTELLA)/gnutellaHandler.ml \
376 $(SRC_GNUTELLA)/gnutellaRedirector.ml \
377 $(SRC_GNUTELLA)/gnutellaServers.ml \
378 $(SRC_GNUTELLA)/gnutellaSupernode.ml \
379 $(SRC_GNUTELLA)/gnutellaInteractive.ml \
380 $(SRC_GNUTELLA)/gnutellaMain.ml
382 # The only files specific to Gnutella2 are:
383 # $(SRC_GNUTELLA2)/g2Network.ml
384 # $(SRC_GNUTELLA2)/g2Proto.ml
385 # $(SRC_GNUTELLA2)/g2Handler.ml
386 # $(SRC_GNUTELLA2)/g2Redirector.ml
388 GNUTELLA2_SRCS= \
389 $(SRC_GNUTELLA2)/g2Network.ml \
390 $(SRC_GNUTELLA2)/g2Types.mlt \
391 $(SRC_GNUTELLA2)/g2Options.mlt \
392 $(SRC_GNUTELLA2)/g2Globals.mlt \
393 $(SRC_GNUTELLA2)/g2ComplexOptions.mlt \
394 $(SRC_GNUTELLA2)/g2Functions.mlt \
395 $(SRC_GNUTELLA2)/g2Protocol.mlt \
396 $(SRC_GNUTELLA2)/g2Proto.ml \
397 $(SRC_GNUTELLA2)/g2Clients.mlt \
398 $(SRC_GNUTELLA2)/g2Pandora.ml \
399 $(SRC_GNUTELLA2)/g2Handler.ml \
400 $(SRC_GNUTELLA2)/g2Redirector.ml \
401 $(SRC_GNUTELLA2)/g2Servers.mlt \
402 $(SRC_GNUTELLA2)/g2Supernode.ml \
403 $(SRC_GNUTELLA2)/g2Interactive.mlt \
404 $(SRC_GNUTELLA2)/g2Main.mlt
407 # The only files specific to Fasttrack are:
408 # $(SRC_FASTTRACK)/fasttrackNetwork.ml
409 # $(SRC_FASTTRACK)/fasttrackGlobals.ml
410 # $(SRC_FASTTRACK)/fasttrackProtocol.ml
411 # $(SRC_FASTTRACK)/fasttrackProto.ml
412 # $(SRC_FASTTRACK)/fasttrackHandler.ml
413 # $(SRC_FASTTRACK)/fasttrackServers.ml
414 # $(SRC_FASTTRACK)/fasttrackPandora.ml
417 FASTTRACK_SRCS= \
418 $(SRC_FASTTRACK)/enc_type_1.c \
419 $(SRC_FASTTRACK)/enc_type_2.c \
420 $(SRC_FASTTRACK)/enc_type_20.c \
421 $(SRC_FASTTRACK)/enc_type_80.c \
422 $(SRC_FASTTRACK)/fst_crypt.c \
423 $(SRC_FASTTRACK)/fst_crypt_ml.c \
424 $(SRC_FASTTRACK)/fasttrackNetwork.ml \
425 $(SRC_FASTTRACK)/fasttrackTypes.mlt \
426 $(SRC_FASTTRACK)/fasttrackOptions.mlt \
427 $(SRC_FASTTRACK)/fasttrackGlobals.ml \
428 $(SRC_FASTTRACK)/fasttrackComplexOptions.mlt \
429 $(SRC_FASTTRACK)/fasttrackFunctions.mlt \
430 $(SRC_FASTTRACK)/fasttrackProtocol.ml \
431 $(SRC_FASTTRACK)/fasttrackProto.ml \
432 $(SRC_FASTTRACK)/fasttrackClients.mlt \
433 $(SRC_FASTTRACK)/fasttrackHandler.ml \
434 $(SRC_FASTTRACK)/fasttrackServers.ml \
435 $(SRC_FASTTRACK)/fasttrackPandora.ml \
436 $(SRC_FASTTRACK)/fasttrackInteractive.mlt \
437 $(SRC_FASTTRACK)/fasttrackMain.mlt
439 $(BITSTRING)/bitstring_persistent.cmo: $(BITSTRING)/bitstring_persistent.ml $(BITSTRING)/bitstring_persistent.cmi build/bitstring.cma
440 $(OCAMLC) -I $(BITSTRING) -I +camlp4 camlp4lib.cma -c $<
442 $(BITSTRING)/pa_bitstring.cmo: $(BITSTRING)/pa_bitstring.mlt $(BITSTRING)/bitstring_persistent.cmo build/bitstring.cma
443 $(OCAMLC) -I $(BITSTRING) -I +camlp4 camlp4lib.cma -pp '$(CAMLP4OF) -impl' -c $^
445 BITTORRENT_SRCS= \
446 $(SRC_BITTORRENT)/bencode.ml \
447 $(SRC_BITTORRENT)/bTRate.ml \
448 $(SRC_BITTORRENT)/bTTypes.ml \
449 $(SRC_BITTORRENT)/bTOptions.ml \
450 $(SRC_BITTORRENT)/bTUdpTracker.ml \
451 $(SRC_BITTORRENT)/bTProtocol.ml \
452 $(SRC_BITTORRENT)/bTTorrent.ml \
453 $(SRC_BITTORRENT)/kademlia.ml \
454 $(SRC_BITTORRENT)/bT_DHT.ml \
455 $(SRC_BITTORRENT)/bTGlobals.ml \
456 $(SRC_BITTORRENT)/bTComplexOptions.ml \
457 $(SRC_BITTORRENT)/bTStats.ml \
458 $(SRC_BITTORRENT)/bTTracker.ml \
459 $(SRC_BITTORRENT)/bTChooser.ml \
460 $(SRC_BITTORRENT)/bTClients.ml \
461 $(SRC_BITTORRENT)/bTInteractive.ml \
462 $(SRC_BITTORRENT)/bTMain.ml
464 OPENFT_SRCS= \
465 $(SRC_OPENFT)/openFTTypes.ml \
466 $(SRC_OPENFT)/openFTOptions.ml \
467 $(SRC_OPENFT)/openFTGlobals.ml \
468 $(SRC_OPENFT)/openFTComplexOptions.ml \
469 $(SRC_OPENFT)/openFTProtocol.ml \
470 $(SRC_OPENFT)/openFTClients.ml \
471 $(SRC_OPENFT)/openFTServers.ml \
472 $(SRC_OPENFT)/openFTInteractive.ml \
473 $(SRC_OPENFT)/openFTMain.ml
475 FILETP_SRCS= \
476 $(SRC_FILETP)/fileTPTypes.ml \
477 $(SRC_FILETP)/fileTPOptions.ml \
478 $(SRC_FILETP)/fileTPGlobals.ml \
479 $(SRC_FILETP)/fileTPComplexOptions.ml \
480 $(SRC_FILETP)/fileTPProtocol.ml \
481 $(SRC_FILETP)/fileTPClients.ml \
482 $(SRC_FILETP)/fileTPHTTP.ml \
483 $(SRC_FILETP)/fileTPFTP.ml \
484 $(SRC_FILETP)/fileTPSSH.ml \
485 $(SRC_FILETP)/fileTPInteractive.ml \
486 $(SRC_FILETP)/fileTPMain.ml
488 SOULSEEK_SRCS= \
489 $(SRC_SOULSEEK)/slskTypes.ml \
490 $(SRC_SOULSEEK)/slskOptions.ml \
491 $(SRC_SOULSEEK)/slskGlobals.ml \
492 $(SRC_SOULSEEK)/slskComplexOptions.ml \
493 $(SRC_SOULSEEK)/slskProtocol.ml \
494 $(SRC_SOULSEEK)/slskClients.ml \
495 $(SRC_SOULSEEK)/slskServers.ml \
496 $(SRC_SOULSEEK)/slskInteractive.ml \
497 $(SRC_SOULSEEK)/slskMain.ml
499 DIRECT_CONNECT_SRCS= \
500 $(SRC_DIRECTCONNECT)/dcTypes.ml \
501 $(SRC_DIRECTCONNECT)/dcOptions.ml \
502 $(SRC_DIRECTCONNECT)/che3_c.c \
503 $(SRC_DIRECTCONNECT)/che3.ml \
504 $(SRC_DIRECTCONNECT)/dcGlobals.ml \
505 $(SRC_DIRECTCONNECT)/dcComplexOptions.ml \
506 $(SRC_DIRECTCONNECT)/dcProtocol.ml \
507 $(SRC_DIRECTCONNECT)/dcShared.ml \
508 $(SRC_DIRECTCONNECT)/dcKey.ml \
509 $(SRC_DIRECTCONNECT)/dcClients.ml \
510 $(SRC_DIRECTCONNECT)/dcServers.ml \
511 $(SRC_DIRECTCONNECT)/dcInteractive.ml \
512 $(SRC_DIRECTCONNECT)/dcMain.ml
515 OBSERVER_SRCS = \
516 $(EXTLIB_SRCS) $(CDK_SRCS) $(LIB_SRCS) $(NET_SRCS) $(MP3TAG_SRCS) \
517 $(COMMON_SRCS) $(COMMON_CLIENT_SRCS) $(DONKEY_SRCS) \
518 tools/observer.ml
520 MLD_HASH_SRCS = \
521 $(EXTLIB_SRCS) $(CDK_SRCS) $(LIB_SRCS) $(NET_SRCS) $(MP3TAG_SRCS) \
522 tools/mld_hash.ml
524 OCAMLPP_SRCS = \
525 tools/ocamlpp.ml4
527 COPYSOURCES_SRCS = \
528 $(EXTLIB_SRCS) $(CDK_SRCS) $(LIB_SRCS) tools/copysources.ml
530 SUBCONV_SRCS = \
531 $(EXTLIB_SRCS) $(CDK_SRCS) $(LIB_SRCS) tools/subconv.ml
533 MLSPLIT_SRCS = \
534 $(EXTLIB_SRCS) $(CDK_SRCS) $(LIB_SRCS) tools/mlsplit.ml
536 MAKE_TORRENT_SRCS = \
537 $(MAGIC_SRCS) $(EXTLIB_SRCS) $(CDK_SRCS) $(LIB_SRCS) $(NET_SRCS) $(MP3TAG_SRCS) \
538 $(COMMON_SRCS) $(COMMON_CLIENT_SRCS) $(BITSTRING_SRCS) $(BITTORRENT_SRCS) \
539 tools/make_torrent.ml
541 BT_DHT_NODE_SRCS = \
542 $(EXTLIB_SRCS) $(CDK_SRCS) $(LIB_SRCS) $(NET_SRCS) \
543 $(SRC_BITTORRENT)/bencode.ml $(SRC_BITTORRENT)/kademlia.ml $(SRC_BITTORRENT)/bT_DHT.ml \
544 tools/bt_dht_node.ml
546 GET_RANGE_SRCS = \
547 $(EXTLIB_SRCS) $(CDK_SRCS) $(LIB_SRCS) $(NET_SRCS) $(MP3TAG_SRCS) \
548 tools/get_range.ml
550 ifeq ("$(OPENFT)" , "yes")
551 SUBDIRS += $(SRC_OPENFT)
553 CORE_SRCS += $(OPENFT_SRCS)
554 endif
556 ifeq ("$(GD)", "yes")
557 GD_LIBS_flags=-cclib "-lgd $(GD_LIBS)" -ccopt "$(GD_LDFLAGS)"
558 ifneq ("$(GD_STATIC_LIBS)", "")
559 GD_STATIC_LIBS_opt=-cclib "-lgd $(GD_STATIC_LIBS)" -ccopt "$(GD_LDFLAGS)"
560 endif
561 DRIVER_SRCS= \
562 $(CDK)/gd.ml \
563 $(CDK)/gdstubs.c \
564 $(DRIVER)/driverGraphics_gd.ml
565 else
566 DRIVER_SRCS= \
567 $(DRIVER)/driverGraphics_nogd.ml
568 endif
570 ifeq ("$(UPNP_NATPMP)", "yes")
571 UPNP_NATPMP_LIBS_flags=-cclib "$(UPNP_NATPMP_LIBS)" -ccopt "$(UPNP_NATPMP_LDFLAGS)"
572 UPNP_NATPMP_STATIC_LIBS_flags=-cclib "$(UPNP_NATPMP_STATIC_LIBS)" -ccopt "$(UPNP_NATPMP_LDFLAGS)"
573 endif
575 DRIVER_SRCS+= \
576 $(DRIVER)/driverGraphics.ml \
577 $(DRIVER)/driverInteractive.ml \
578 $(DRIVER)/driverCommands.ml \
579 $(DRIVER)/driverControlers.ml \
580 $(DRIVER)/driverInterface.ml \
581 $(DRIVER)/driverMain.ml
583 ICONS_CMXA=icons.cmxa
585 CDK_CMXA=cdk.cmxa
586 BITSTRING_CMXA=
587 BITSTRING_CMA=
588 MLNET_SRCS=
589 ifeq ("$(DONKEY)", "yes")
590 BITSTRING_CMXA=bitstring.cmxa
591 BITSTRING_CMA=bitstring.cma
592 endif
593 ifeq ("$(BITTORRENT)", "yes")
594 LIBS_byte += nums.cma
595 LIBS_opt += nums.cmxa
596 BITSTRING_CMXA=bitstring.cmxa
597 BITSTRING_CMA=bitstring.cma
598 endif
599 MLNET_SRCS+= $(MAIN_SRCS)
600 MLNET_CMXA=extlib.cmxa $(CDK_CMXA) $(BITSTRING_CMXA) magic.cmxa common.cmxa client.cmxa core.cmxa driver.cmxa
602 TESTS_CMXA=extlib.cmxa $(CDK_CMXA) $(BITSTRING_CMXA) magic.cmxa common.cmxa client.cmxa core.cmxa
603 TESTS_SRCS=tools/tests.ml
605 ifeq ("$(GUI)", "newgui2")
606 mlnet+gui_CMXA= \
607 $(BITSTRING_CMXA) magic.cmxa extlib.cmxa cdk.cmxa common.cmxa client.cmxa core.cmxa driver.cmxa \
608 icons.cmxa guibase.cmxa gui.cmxa
609 else
610 mlnet+gui_CMXA= \
611 $(BITSTRING_CMXA) magic.cmxa extlib.cmxa cdk.cmxa common.cmxa client.cmxa core.cmxa driver.cmxa \
612 gmisc.cmxa icons.cmxa guibase.cmxa gui.cmxa
613 endif
615 mlnet+gui_SRCS=$(MAIN_SRCS)
618 #######################################################################
620 # Sources for other development tools
622 #######################################################################
625 TESTRSS_SRCS= $(EXTLIB_SRCS) $(CDK_SRCS) $(LIB_SRCS) tools/testrss.ml
628 #######################################################################
630 # Objects files for "mlgui"
632 #######################################################################
634 uninstall::
635 rm -f $(BINDIR)/mlnet
636 rm -f $(BINDIR)/mlgui
638 install:: opt
639 mkdir -p $(DESTDIR)$(prefix)/bin
640 if test -f mlnet; then \
641 rm -f $(DESTDIR)$(prefix)/bin/mlnet; cp -f mlnet $(DESTDIR)$(prefix)/bin/mlnet; \
642 for link in mlslsk mldonkey mlgnut mldc mlbt; do \
643 rm -f $(DESTDIR)$(prefix)/bin/$$link; ln -s mlnet $(DESTDIR)$(prefix)/bin/$$link; \
644 done; \
646 if test -f mlgui; then \
647 rm -f $(DESTDIR)$(prefix)/bin/mlgui; cp -f mlgui $(DESTDIR)$(prefix)/bin/mlgui; \
648 rm -f $(DESTDIR)$(prefix)/bin/mldonkey_gui; ln -s mlgui $(DESTDIR)$(prefix)/bin/mldonkey_gui; \
650 if test -f mlnet+gui; then \
651 rm -f $(DESTDIR)$(prefix)/bin/mlnet+gui; cp -f mlnet+gui $(DESTDIR)$(prefix)/bin/mlnet+gui; \
652 for link in mlslsk+gui mldonkey+gui mlgnut+gui mldc+gui mlbt+gui; do \
653 rm -f $(DESTDIR)$(prefix)/bin/$$link; ln -s mlnet+gui $(DESTDIR)$(prefix)/bin/$$link; \
654 done; \
658 ifneq ("$(GUI)" , "no")
659 ifeq ("$(GUI)", "newgui2")
660 SUBDIRS += $(SRC_GUI) $(SRC_GUI)/x11 $(SRC_GUI)/win32 $(ICONS_CHOICE) +lablgtk2
661 GTK_LIBS_byte=-ccopt "$(GTKLLIBS)" -cclib "$(GTKLFLAGS)" -I +lablgtk2 $(LABLGL_CMA) lablgtk.cma gtkInit.cmo lablrsvg.cma
662 GTK_LIBS_opt=-ccopt "$(GTKLLIBS)" -cclib "$(GTKLFLAGS)" -I +lablgtk2 $(LABLGL_CMXA) lablgtk.cmxa gtkInit.cmx lablrsvg.cmxa
663 GTK_STATIC_LIBS_opt=-ccopt "$(GTKLLIBS)" -cclib "$(GTKLFLAGS)" -I +lablgtk2 lablgtk.cmxa gtkInit.cmx lablrsvg.cmxa
664 else
665 SUBDIRS += $(SRC_GUI) $(CONFIGWIN) $(OKEY) $(GPATTERN) $(ICONS_CHOICE) +lablgtk $(SRC_PROGRESS)
666 GTK_LIBS_byte=-I +lablgtk $(LABLGL_CMA) lablgtk.cma
667 GTK_LIBS_opt=-I +lablgtk $(LABLGL_CMXA) lablgtk.cmxa
668 GTK_STATIC_LIBS_opt=-I +lablgtk lablgtk.cmxa
669 endif
671 SVG_CONVERTER_SRCS = \
672 $(EXTLIB_SRCS) $(CDK_SRCS) $(LIB_SRCS) tools/svg_converter.ml
674 CURSES_LIBS_byte=-cclib -lncurses
675 CURSES_LIBS_opt=-cclib -lncurses
678 CONFIGWIN_SRCS= \
679 $(CONFIGWIN)/configwin_types.ml \
680 $(CONFIGWIN)/configwin_messages.ml \
681 $(CONFIGWIN)/configwin_ihm.ml \
682 $(CONFIGWIN)/configwin.ml
684 MP3TAGUI_SRCS= $(MP3)/mp3_messages.ml $(MP3)/mp3_ui.ml
686 GPATTERN_SRCS= $(LIB)/gAutoconf.ml $(GPATTERN)/gpattern.ml
688 OKEY_SRCS= $(OKEY)/okey.ml
690 GTK2GUI_ICONS= \
691 $(ICONS_CHOICE)/splash_screen.svg \
692 $(ICONS_CHOICE)/menu_networks.svg \
693 $(ICONS_CHOICE)/menu_servers.svg \
694 $(ICONS_CHOICE)/menu_downloads.svg \
695 $(ICONS_CHOICE)/menu_friends.svg \
696 $(ICONS_CHOICE)/menu_searches.svg \
697 $(ICONS_CHOICE)/menu_rooms.svg \
698 $(ICONS_CHOICE)/menu_uploads.svg \
699 $(ICONS_CHOICE)/menu_console.svg \
700 $(ICONS_CHOICE)/menu_graph.svg \
701 $(ICONS_CHOICE)/menu_settings.svg \
702 $(ICONS_CHOICE)/menu_quit.svg \
703 $(ICONS_CHOICE)/menu_help.svg \
704 $(ICONS_CHOICE)/menu_core.svg \
705 $(ICONS_CHOICE)/menu_core_reconnect.svg \
706 $(ICONS_CHOICE)/menu_core_connectto.svg \
707 $(ICONS_CHOICE)/menu_core_scanports.svg \
708 $(ICONS_CHOICE)/menu_core_disconnect.svg \
709 $(ICONS_CHOICE)/menu_core_kill.svg \
710 $(ICONS_CHOICE)/menu_search_album.svg \
711 $(ICONS_CHOICE)/menu_search_movie.svg \
712 $(ICONS_CHOICE)/menu_search_mp3.svg \
713 $(ICONS_CHOICE)/menu_search_complex.svg \
714 $(ICONS_CHOICE)/menu_search_freedb.svg \
715 $(ICONS_CHOICE)/menu_search_imdb.svg \
716 $(ICONS_CHOICE)/menu_interfaces.svg \
717 $(ICONS_CHOICE)/menu_tools.svg \
718 $(ICONS_CHOICE)/menu_others.svg \
719 $(ICONS_CHOICE)/net_bittorrent.svg \
720 $(ICONS_CHOICE)/net_dc.svg \
721 $(ICONS_CHOICE)/net_ed2k.svg \
722 $(ICONS_CHOICE)/net_fasttrack.svg \
723 $(ICONS_CHOICE)/net_filetp.svg \
724 $(ICONS_CHOICE)/net_gnutella1.svg \
725 $(ICONS_CHOICE)/net_gnutella2.svg \
726 $(ICONS_CHOICE)/net_napster.svg \
727 $(ICONS_CHOICE)/net_soulseek.svg \
728 $(ICONS_CHOICE)/net_multinet.svg \
729 $(ICONS_CHOICE)/net_globalshare.svg \
730 $(ICONS_CHOICE)/net_supernode.svg \
731 $(ICONS_CHOICE)/stock_shared_directory.svg \
732 $(ICONS_CHOICE)/stock_directory.svg \
733 $(ICONS_CHOICE)/stock_directory_open.svg \
734 $(ICONS_CHOICE)/stock_color.svg \
735 $(ICONS_CHOICE)/stock_font.svg \
736 $(ICONS_CHOICE)/stock_password.svg \
737 $(ICONS_CHOICE)/stock_download_directory.svg \
738 $(ICONS_CHOICE)/stock_pending_slots.svg \
739 $(ICONS_CHOICE)/stock_close.svg \
740 $(ICONS_CHOICE)/stock_close_overlay.svg \
741 $(ICONS_CHOICE)/stock_stop.svg \
742 $(ICONS_CHOICE)/stock_ok.svg \
743 $(ICONS_CHOICE)/stock_all_servers.svg \
744 $(ICONS_CHOICE)/stock_add_server.svg \
745 $(ICONS_CHOICE)/stock_subscribe_search.svg \
746 $(ICONS_CHOICE)/stock_submit_search.svg \
747 $(ICONS_CHOICE)/stock_extend_search.svg \
748 $(ICONS_CHOICE)/stock_info.svg \
749 $(ICONS_CHOICE)/stock_local_search.svg \
750 $(ICONS_CHOICE)/stock_warning.svg \
751 $(ICONS_CHOICE)/type_source_contact.svg \
752 $(ICONS_CHOICE)/type_source_friend.svg \
753 $(ICONS_CHOICE)/type_source_normal.svg \
754 $(ICONS_CHOICE)/state_server_conh.svg \
755 $(ICONS_CHOICE)/state_server_conl.svg \
756 $(ICONS_CHOICE)/state_server_init.svg \
757 $(ICONS_CHOICE)/state_server_notcon.svg \
758 $(ICONS_CHOICE)/state_server_unknown.svg \
759 $(ICONS_CHOICE)/state_source_fileslisted.svg \
760 $(ICONS_CHOICE)/state_down.svg \
761 $(ICONS_CHOICE)/state_up.svg \
762 $(ICONS_CHOICE)/state_updown.svg \
763 $(ICONS_CHOICE)/state_notupdown.svg \
764 $(ICONS_CHOICE)/mime_unknown.svg \
765 $(ICONS_CHOICE)/mime_images.svg \
766 $(ICONS_CHOICE)/mime_binary.svg \
767 $(ICONS_CHOICE)/mime_cdimage.svg \
768 $(ICONS_CHOICE)/mime_debian.svg \
769 $(ICONS_CHOICE)/mime_html.svg \
770 $(ICONS_CHOICE)/mime_java.svg \
771 $(ICONS_CHOICE)/mime_pdf.svg \
772 $(ICONS_CHOICE)/mime_postscript.svg \
773 $(ICONS_CHOICE)/mime_real.svg \
774 $(ICONS_CHOICE)/mime_recycled.svg \
775 $(ICONS_CHOICE)/mime_rpm.svg \
776 $(ICONS_CHOICE)/mime_shellscript.svg \
777 $(ICONS_CHOICE)/mime_soffice.svg \
778 $(ICONS_CHOICE)/mime_sound.svg \
779 $(ICONS_CHOICE)/mime_source.svg \
780 $(ICONS_CHOICE)/mime_spreadsheet.svg \
781 $(ICONS_CHOICE)/mime_tex.svg \
782 $(ICONS_CHOICE)/mime_text.svg \
783 $(ICONS_CHOICE)/mime_tgz.svg \
784 $(ICONS_CHOICE)/mime_video.svg \
785 $(ICONS_CHOICE)/mime_wordprocessing.svg \
786 $(ICONS_CHOICE)/emoticon_storm.svg \
787 $(ICONS_CHOICE)/emoticon_airplane.svg \
788 $(ICONS_CHOICE)/emoticon_angel.svg \
789 $(ICONS_CHOICE)/emoticon_arrogant.svg \
790 $(ICONS_CHOICE)/emoticon_asl.svg \
791 $(ICONS_CHOICE)/emoticon_bad.svg \
792 $(ICONS_CHOICE)/emoticon_baringteeth.svg \
793 $(ICONS_CHOICE)/emoticon_bat.svg \
794 $(ICONS_CHOICE)/emoticon_beer.svg \
795 $(ICONS_CHOICE)/emoticon_bowl.svg \
796 $(ICONS_CHOICE)/emoticon_boy.svg \
797 $(ICONS_CHOICE)/emoticon_cake.svg \
798 $(ICONS_CHOICE)/emoticon_cat.svg \
799 $(ICONS_CHOICE)/emoticon_cigaret.svg \
800 $(ICONS_CHOICE)/emoticon_clock.svg \
801 $(ICONS_CHOICE)/emoticon_confused.svg \
802 $(ICONS_CHOICE)/emoticon_cry.svg \
803 $(ICONS_CHOICE)/emoticon_cup.svg \
804 $(ICONS_CHOICE)/emoticon_devil.svg \
805 $(ICONS_CHOICE)/emoticon_dog.svg \
806 $(ICONS_CHOICE)/emoticon_dude_hug.svg \
807 $(ICONS_CHOICE)/emoticon_dunno.svg \
808 $(ICONS_CHOICE)/emoticon_embarrassed.svg \
809 $(ICONS_CHOICE)/emoticon_envelope.svg \
810 $(ICONS_CHOICE)/emoticon_eyeroll.svg \
811 $(ICONS_CHOICE)/emoticon_film.svg \
812 $(ICONS_CHOICE)/emoticon_girl.svg \
813 $(ICONS_CHOICE)/emoticon_girl_hug.svg \
814 $(ICONS_CHOICE)/emoticon_ip.svg \
815 $(ICONS_CHOICE)/emoticon_kiss.svg \
816 $(ICONS_CHOICE)/emoticon_lightning.svg \
817 $(ICONS_CHOICE)/emoticon_love.svg \
818 $(ICONS_CHOICE)/emoticon_megasmile.svg \
819 $(ICONS_CHOICE)/emoticon_moon.svg \
820 $(ICONS_CHOICE)/emoticon_nerd.svg \
821 $(ICONS_CHOICE)/emoticon_omg.svg \
822 $(ICONS_CHOICE)/emoticon_party.svg \
823 $(ICONS_CHOICE)/emoticon_pizza.svg \
824 $(ICONS_CHOICE)/emoticon_plate.svg \
825 $(ICONS_CHOICE)/emoticon_present.svg \
826 $(ICONS_CHOICE)/emoticon_rainbow.svg \
827 $(ICONS_CHOICE)/emoticon_sad.svg \
828 $(ICONS_CHOICE)/emoticon_sarcastic.svg \
829 $(ICONS_CHOICE)/emoticon_secret.svg \
830 $(ICONS_CHOICE)/emoticon_shade.svg \
831 $(ICONS_CHOICE)/emoticon_sick.svg \
832 $(ICONS_CHOICE)/emoticon_sleepy.svg \
833 $(ICONS_CHOICE)/emoticon_sorry.svg \
834 $(ICONS_CHOICE)/emoticon_sshh.svg \
835 $(ICONS_CHOICE)/emoticon_sun.svg \
836 $(ICONS_CHOICE)/emoticon_teeth.svg \
837 $(ICONS_CHOICE)/emoticon_thumbs_down.svg \
838 $(ICONS_CHOICE)/emoticon_thumbs_up.svg \
839 $(ICONS_CHOICE)/emoticon_tongue.svg \
840 $(ICONS_CHOICE)/emoticon_ugly.svg \
841 $(ICONS_CHOICE)/emoticon_ulove.svg \
842 $(ICONS_CHOICE)/emoticon_wink.svg
844 NEWGUI_ICONS= \
845 $(ICONS_CHOICE)/extend_search.xpm \
846 $(ICONS_CHOICE)/local_search.xpm \
847 $(ICONS_CHOICE)/trash.xpm \
848 $(ICONS_CHOICE)/subscribe_search.xpm \
849 $(ICONS_CHOICE)/submit_search.xpm \
850 $(ICONS_CHOICE)/close_search.xpm \
851 $(ICONS_CHOICE)/stop_search.xpm \
852 $(ICONS_CHOICE)/nbk_networks_on.xpm \
853 $(ICONS_CHOICE)/nbk_networks_menu.xpm \
854 $(ICONS_CHOICE)/nbk_servers_on.xpm \
855 $(ICONS_CHOICE)/nbk_servers_menu.xpm \
856 $(ICONS_CHOICE)/nbk_downloads_on.xpm \
857 $(ICONS_CHOICE)/nbk_downloads_menu.xpm \
858 $(ICONS_CHOICE)/nbk_friends_on.xpm \
859 $(ICONS_CHOICE)/nbk_friends_menu.xpm \
860 $(ICONS_CHOICE)/nbk_search_on.xpm \
861 $(ICONS_CHOICE)/nbk_search_menu.xpm \
862 $(ICONS_CHOICE)/nbk_rooms_on.xpm \
863 $(ICONS_CHOICE)/nbk_rooms_menu.xpm \
864 $(ICONS_CHOICE)/nbk_uploads_on.xpm \
865 $(ICONS_CHOICE)/nbk_uploads_menu.xpm \
866 $(ICONS_CHOICE)/nbk_console_on.xpm \
867 $(ICONS_CHOICE)/nbk_console_menu.xpm \
868 $(ICONS_CHOICE)/nbk_graphs_on.xpm \
869 $(ICONS_CHOICE)/nbk_graphs_menu.xpm \
870 $(ICONS_CHOICE)/about.xpm \
871 $(ICONS_CHOICE)/settings.xpm \
872 $(ICONS_CHOICE)/exit.xpm \
873 $(ICONS_CHOICE)/gui.xpm \
874 $(ICONS_CHOICE)/kill_core.xpm \
875 $(ICONS_CHOICE)/splash_screen.xpm \
876 $(ICONS_CHOICE)/album_search.xpm \
877 $(ICONS_CHOICE)/movie_search.xpm \
878 $(ICONS_CHOICE)/mp3_search.xpm \
879 $(ICONS_CHOICE)/complex_search.xpm \
880 $(ICONS_CHOICE)/sharereactor_search.xpm \
881 $(ICONS_CHOICE)/jigle_search.xpm \
882 $(ICONS_CHOICE)/freedb_search.xpm \
883 $(ICONS_CHOICE)/imdb_search.xpm \
884 $(ICONS_CHOICE)/bt.xpm \
885 $(ICONS_CHOICE)/dc.xpm \
886 $(ICONS_CHOICE)/ed2k.xpm \
887 $(ICONS_CHOICE)/fasttrack.xpm \
888 $(ICONS_CHOICE)/gnutella.xpm \
889 $(ICONS_CHOICE)/napster.xpm \
890 $(ICONS_CHOICE)/slsk.xpm \
891 $(ICONS_CHOICE)/unknown.xpm \
892 $(ICONS_CHOICE)/downloading.xpm \
893 $(ICONS_CHOICE)/connect_y.xpm \
894 $(ICONS_CHOICE)/connect_m.xpm \
895 $(ICONS_CHOICE)/connect_n.xpm \
896 $(ICONS_CHOICE)/removedhost.xpm \
897 $(ICONS_CHOICE)/blacklistedhost.xpm \
898 $(ICONS_CHOICE)/files_listed.xpm \
899 $(ICONS_CHOICE)/server_c_high.xpm \
900 $(ICONS_CHOICE)/server_c_low.xpm \
901 $(ICONS_CHOICE)/server_ci.xpm \
902 $(ICONS_CHOICE)/server_nc.xpm \
903 $(ICONS_CHOICE)/toggle_display_all_servers.xpm \
904 $(ICONS_CHOICE)/view_pending_slots.xpm \
905 $(ICONS_CHOICE)/add_server.xpm \
906 $(ICONS_CHOICE)/add_shared_directory.xpm \
907 $(ICONS_CHOICE)/download_directory.xpm \
908 $(ICONS_CHOICE)/friend_user.xpm \
909 $(ICONS_CHOICE)/contact_user.xpm \
910 $(ICONS_CHOICE)/normal_user.xpm \
911 $(ICONS_CHOICE)/priority_0.xpm \
912 $(ICONS_CHOICE)/priority_1.xpm \
913 $(ICONS_CHOICE)/priority_2.xpm \
914 $(ICONS_CHOICE)/mimetype_binary.xpm \
915 $(ICONS_CHOICE)/mimetype_cdimage.xpm \
916 $(ICONS_CHOICE)/mimetype_debian.xpm \
917 $(ICONS_CHOICE)/mimetype_html.xpm \
918 $(ICONS_CHOICE)/mimetype_images.xpm \
919 $(ICONS_CHOICE)/mimetype_java.xpm \
920 $(ICONS_CHOICE)/mimetype_pdf.xpm \
921 $(ICONS_CHOICE)/mimetype_postscript.xpm \
922 $(ICONS_CHOICE)/mimetype_real.xpm \
923 $(ICONS_CHOICE)/mimetype_recycled.xpm \
924 $(ICONS_CHOICE)/mimetype_rpm.xpm \
925 $(ICONS_CHOICE)/mimetype_shellscript.xpm \
926 $(ICONS_CHOICE)/mimetype_soffice.xpm \
927 $(ICONS_CHOICE)/mimetype_sound.xpm \
928 $(ICONS_CHOICE)/mimetype_source.xpm \
929 $(ICONS_CHOICE)/mimetype_spreadsheet.xpm \
930 $(ICONS_CHOICE)/mimetype_tex.xpm \
931 $(ICONS_CHOICE)/mimetype_text.xpm \
932 $(ICONS_CHOICE)/mimetype_tgz.xpm \
933 $(ICONS_CHOICE)/mimetype_video.xpm \
934 $(ICONS_CHOICE)/mimetype_wordprocessing.xpm \
935 $(ICONS_CHOICE)/mimetype_unknown.xpm \
936 $(ICONS_CHOICE)/tree_closed.xpm \
937 $(ICONS_CHOICE)/tree_opened.xpm \
938 $(ICONS_CHOICE)/bt_net_on.xpm \
939 $(ICONS_CHOICE)/dc_net_on.xpm \
940 $(ICONS_CHOICE)/ed2k_net_on.xpm \
941 $(ICONS_CHOICE)/ftt_net_on.xpm \
942 $(ICONS_CHOICE)/gnut_net_on.xpm \
943 $(ICONS_CHOICE)/nap_net_on.xpm \
944 $(ICONS_CHOICE)/slsk_net_on.xpm \
945 $(ICONS_CHOICE)/mld_tux_on.xpm
947 NEWGUI_SMALL_ICONS= \
948 icons/small/add_to_friends_small.xpm icons/small/cancel_small.xpm \
949 icons/small/connect_more_small.xpm icons/small/connect_small.xpm \
950 icons/small/disconnect_small.xpm icons/small/download_small.xpm \
951 icons/small/edit_mp3_small.xpm icons/small/extend_search_small.xpm \
952 icons/small/get_format_small.xpm icons/small/local_search_small.xpm \
953 icons/small/preview_small.xpm icons/small/refres_small.xpm \
954 icons/small/save_all_small.xpm icons/small/save_as_small.xpm icons/small/save_small.xpm \
955 icons/small/trash_small.xpm icons/small/verify_chunks_small.xpm \
956 icons/small/view_users_small.xpm
958 OLDGUI_ICONS= \
959 $(ICONS_CHOICE)/add_to_friends.xpm \
960 $(ICONS_CHOICE)/cancel.xpm $(ICONS_CHOICE)/connect_more.xpm \
961 $(ICONS_CHOICE)/connect.xpm $(ICONS_CHOICE)/disconnect.xpm \
962 $(ICONS_CHOICE)/download.xpm \
963 $(ICONS_CHOICE)/edit_mp3.xpm $(ICONS_CHOICE)/extend_search.xpm \
964 $(ICONS_CHOICE)/get_format.xpm \
965 $(ICONS_CHOICE)/local_search.xpm $(ICONS_CHOICE)/preview.xpm \
966 $(ICONS_CHOICE)/refres.xpm \
967 $(ICONS_CHOICE)/save_all.xpm $(ICONS_CHOICE)/save_as.xpm \
968 $(ICONS_CHOICE)/save.xpm \
969 $(ICONS_CHOICE)/trash.xpm $(ICONS_CHOICE)/verify_chunks.xpm \
970 $(ICONS_CHOICE)/view_users.xpm \
971 $(ICONS_CHOICE)/pause_resume.xpm \
972 $(ICONS_CHOICE)/remove_all_friends.xpm
974 OLDGUI_SMALL_ICONS= \
975 icons/small/add_to_friends_small.xpm icons/small/cancel_small.xpm \
976 icons/small/connect_more_small.xpm icons/small/connect_small.xpm \
977 icons/small/disconnect_small.xpm icons/small/download_small.xpm \
978 icons/small/edit_mp3_small.xpm icons/small/extend_search_small.xpm \
979 icons/small/get_format_small.xpm icons/small/local_search_small.xpm \
980 icons/small/preview_small.xpm icons/small/refres_small.xpm \
981 icons/small/save_all_small.xpm icons/small/save_as_small.xpm icons/small/save_small.xpm \
982 icons/small/trash_small.xpm icons/small/verify_chunks_small.xpm \
983 icons/small/view_users_small.xpm
985 ICONS= $($(GUI_CODE)_ICONS)
986 SMALL_ICONS= $($(GUI_CODE)_SMALL_ICONS)
988 ifeq ("$(GUI)", "newgui2")
989 ALL_ICONS=$(foreach file, $(ICONS), $(basename $(file)).ml_icons)
990 ALL_ICONS_SRCS=$(foreach file, $(ICONS), $(basename $(file))_svg.ml)
991 else
992 ALL_ICONS=$(foreach file, $(ICONS), $(basename $(file)).ml_icons)
993 ALL_ICONS_SRCS=$(foreach file, $(ICONS), $(basename $(file))_xpm.ml)
994 endif
996 $(ALL_ICONS_SRCS): $(ALL_ICONS)
998 ifeq ("$(GUI)", "newgui2")
999 GUI_BASE_SRCS= \
1000 $(SRC_GUI)/guiUtf8.ml $(SRC_GUI)/guiMessages.ml \
1001 $(SRC_GUI)/guiColumns.ml $(SRC_GUI)/graphTypes.ml \
1002 $(SRC_GUI)/guiOptions.ml $(SRC_GUI)/guiArt.ml \
1003 $(SRC_GUI)/guiTools.ml $(SRC_GUI)/guiTypes2.ml \
1004 $(SRC_GUI)/guiTemplates.ml $(SRC_GUI)/configWindow.ml
1005 else
1006 GUI_BASE_SRCS= \
1007 $(SRC_GUI)/gui_messages.ml $(SRC_GUI)/gui_global.ml \
1008 $(SRC_GUI)/gui_columns.ml $(SRC_GUI)/gui_keys.ml \
1009 $(SRC_GUI)/gui_options.ml
1010 endif
1012 GTK2GUI_SRCS= \
1013 $(SRC_GUI)/guiNetHtmlScanner.mll \
1014 $(SRC_GUI)/guiNetHtml.ml \
1015 $(SRC_GUI)/guiGlobal.ml \
1016 $(SRC_GUI)/guiMisc.ml \
1017 $(SRC_GUI)/guiHtml.ml \
1018 $(SRC_GUI)/guiCom.ml \
1019 $(SRC_GUI)/guiStatusBar.ml \
1020 $(SRC_GUI)/guiUsers.ml \
1021 $(SRC_GUI)/guiResults.ml \
1022 $(SRC_GUI)/guiInfoWindow.ml \
1023 $(SRC_GUI)/guiGraphBase.ml \
1024 $(SRC_GUI)/guiGraph.ml \
1025 $(SRC_GUI)/guiDownloads.ml \
1026 $(SRC_GUI)/guiServers.ml \
1027 $(SRC_GUI)/guiQueries.ml \
1028 $(SRC_GUI)/guiRooms.ml \
1029 $(SRC_GUI)/guiConsole.ml \
1030 $(SRC_GUI)/guiFriends.ml \
1031 $(SRC_GUI)/guiUploads.ml \
1032 $(SRC_GUI)/guiNetworks.ml \
1033 $(SRC_GUI)/guiConfig.ml \
1034 $(SRC_GUI)/guiWindow.ml
1036 ifeq ("$(OS_FILES2)", "mingw")
1037 GTK2GUI_SRCS += $(SRC_GUI)/win32/systraystubs.c
1038 else
1039 GTK2GUI_SRCS += $(SRC_GUI)/x11/eggtrayicon.c $(SRC_GUI)/x11/eggtrayicon.h $(SRC_GUI)/x11/systraystubs.c
1040 endif
1042 GTK2GUI_SRCS += \
1043 $(SRC_GUI)/guiSystray.ml \
1044 $(SRC_GUI)/guiMain.ml
1046 NEWGUI_SRCS= \
1047 $(SRC_PROGRESS)/gui_progress.ml \
1048 $(SRC_GUI)/gui_misc.ml \
1049 $(SRC_GUI)/gui_com.ml \
1050 $(SRC_GUI)/gui_types.ml \
1051 $(SRC_GUI)/gui_graph_base.ml $(SRC_GUI)/gui_graph.ml \
1052 $(SRC_GUI)/gui_console_base.ml $(SRC_GUI)/gui_console.ml \
1053 $(SRC_GUI)/gui_users_base.ml $(SRC_GUI)/gui_users.ml \
1054 $(SRC_GUI)/gui_results_base.ml $(SRC_GUI)/gui_results.ml \
1055 $(SRC_GUI)/gui_rooms_base.ml $(SRC_GUI)/gui_rooms.ml \
1056 $(SRC_GUI)/gui_friends_base.ml $(SRC_GUI)/gui_friends.ml \
1057 $(SRC_GUI)/gui_cdget_base.ml $(SRC_GUI)/gui_cdget.ml \
1058 $(SRC_GUI)/gui_queries_base.ml $(SRC_GUI)/gui_queries.ml \
1059 $(SRC_GUI)/gui_servers_base.ml $(SRC_GUI)/gui_servers.ml \
1060 $(SRC_GUI)/gui_uploads_base.ml $(SRC_GUI)/gui_uploads.ml \
1061 $(SRC_GUI)/gui_downloads_base.ml $(SRC_GUI)/gui_downloads.ml \
1062 $(SRC_GUI)/gui_networks.ml \
1063 $(SRC_GUI)/gui_window_base.ml $(SRC_GUI)/gui_window.ml \
1064 $(SRC_GUI)/gui_config.ml \
1065 $(SRC_GUI)/gui_main.ml
1067 PROGRESS_SRCS = \
1068 $(SRC_PROGRESS)/gui_progress.ml \
1069 $(SRC_GUI)/gui_misc.ml \
1070 $(SRC_GUI)/gui_com.ml \
1071 $(SRC_PROGRESS)/gui_progress_main.ml
1073 OLDGUI_SRCS= \
1074 $(SRC_GUI)/gui_misc.ml \
1075 $(SRC_GUI)/gui_com.ml \
1076 $(SRC_GUI)/gui_help_base.zog $(SRC_GUI)/gui_help.ml \
1077 $(SRC_GUI)/gui_console_base.zog $(SRC_GUI)/gui_console.ml \
1078 $(SRC_GUI)/gui_uploads_base.zog $(SRC_GUI)/gui_uploads.ml \
1079 $(SRC_GUI)/gui_users_base.zog $(SRC_GUI)/gui_users.ml \
1080 $(SRC_GUI)/gui_results_base.zog $(SRC_GUI)/gui_results.ml \
1081 $(SRC_GUI)/gui_rooms_base.zog $(SRC_GUI)/gui_rooms.ml \
1082 $(SRC_GUI)/gui_friends_base.zog $(SRC_GUI)/gui_friends.ml \
1083 $(SRC_GUI)/gui_cdget_base.zog $(SRC_GUI)/gui_cdget.ml \
1084 $(SRC_GUI)/gui_queries_base.ml $(SRC_GUI)/gui_queries.ml \
1085 $(SRC_GUI)/gui_servers_base.zog $(SRC_GUI)/gui_servers.ml \
1086 $(SRC_GUI)/gui_downloads_base.zog $(SRC_GUI)/gui_downloads.ml \
1087 $(SRC_GUI)/gui_window_base.zog $(SRC_GUI)/gui_window.ml \
1088 $(SRC_GUI)/gui_config.ml \
1089 $(SRC_GUI)/gui_main.ml
1091 GUI_SRCS= $($(GUI_CODE)_SRCS)
1093 ifeq ("$(GUI)", "newgui2")
1094 MLDONKEYGUI_CMXA= extlib.cmxa cdk.cmxa common.cmxa icons.cmxa guibase.cmxa gui.cmxa
1095 else
1096 MLDONKEYGUI_CMXA= extlib.cmxa cdk.cmxa gmisc.cmxa common.cmxa icons.cmxa guibase.cmxa gui.cmxa
1097 endif
1099 MLDONKEYGUI_SRCS= $(MAIN_SRCS)
1101 ifeq ("$(GUI)", "newgui2")
1102 STARTER_CMXA=extlib.cmxa cdk.cmxa common.cmxa icons.cmxa guibase.cmxa
1103 STARTER_SRCS= $(SRC_GUI)/guiStarter.ml
1104 else
1105 STARTER_CMXA=extlib.cmxa cdk.cmxa
1106 STARTER_SRCS= $(SRC_GUI)/gui_starter.ml
1107 endif
1109 ifeq ("$(GUI)", "newgui2")
1110 INSTALLER_CMXA= extlib.cmxa cdk.cmxa common.cmxa icons.cmxa guibase.cmxa
1111 else
1112 INSTALLER_CMXA= extlib.cmxa cdk.cmxa gmisc.cmxa common.cmxa icons.cmxa guibase.cmxa
1113 endif
1115 ifeq ("$(GUI)", "newgui2")
1116 INSTALLER_SRCS= \
1117 $(SRC_GUI)/gui_installer_base.ml $(SRC_GUI)/gui_installer.ml
1118 else
1119 INSTALLER_SRCS= \
1120 $(SRC_GUI)/gui_installer_base.zog $(SRC_GUI)/gui_installer.ml
1121 endif
1123 MLPROGRESS_CMXA= extlib.cmxa cdk.cmxa gmisc.cmxa common.cmxa icons.cmxa guibase.cmxa
1125 MLPROGRESS_SRCS = \
1126 $(PROGRESS_SRCS) $(MAIN_SRCS)
1128 TARGETS += mlgui$(EXE) mlguistarter$(EXE)
1129 ifeq ("$(GUI)", "newgui1")
1130 TARGETS += mlprogress$(EXE)
1131 endif
1133 TARGETS += mlnet+gui$(EXE)
1135 endif
1137 top: mldonkeytop
1138 runtop: top
1139 ./mldonkeytop $(INCLUDES)
1141 TOP_CMXA+=$(BITSTRING_CMA) extlib.cmxa cdk.cmxa magic.cmxa common.cmxa client.cmxa core.cmxa
1142 TOP_SRCS=
1144 define([[EXPAND_LIB]],[[
1145 $1_ZOG := $(filter %.zog, $($1_SRCS))
1146 $1_MLL := $(filter %.mll, $($1_SRCS))
1147 $1_MLY := $(filter %.mly, $($1_SRCS))
1148 $1_ML4 := $(filter %.ml4, $($1_SRCS))
1149 $1_MLC4 := $(filter %.mlc4, $($1_SRCS))
1150 $1_MLT := $(filter %.mlt, $($1_SRCS))
1151 $1_MLP := $(filter %.mlcpp, $($1_SRCS))
1152 $1_ML := $(filter %.ml %.mll %.zog %.mly %.ml4 %.mlc4 %.mlt %.mlcpp, $($1_SRCS))
1153 $1_DOC := $(filter %.ml %.mll %.zog %.mly %.ml4 %.mlc4 %.mlcpp, $($1_SRCS))
1154 $1_C := $(filter %.c %.cc, $($1_SRCS))
1155 $1_CMOS=$(foreach file, $($1_ML), $(basename $(file)).cmo)
1156 $1_CMXS=$(foreach file, $($1_ML), $(basename $(file)).cmx)
1157 $1_OBJS=$(foreach file, $($1_C), $(basename $(file)).o)
1159 TMPSOURCES += $($1_ML4:.ml4=.ml) $($1_MLC4:.mlc4=.ml) $($1_MLT:.mlt=.ml) $($1_MLP:.mlcpp=.ml) $($1_MLL:.mll=.ml) $($1_MLY:.mly=.ml) $($1_MLY:.mly=.mli) $($1_ZOG:.zog=.ml)
1161 ZOGSOURCES += $($1_ZOG:.zog=.ml)
1162 MLTSOURCES += $($1_MLT:.mlt=.ml)
1163 MLPSOURCES += $($1_MLP:.mlcpp=.ml)
1165 build/$2.cmxa: $($1_OBJS) $($1_CMXS)
1166 $(OCAMLOPT) -a -o $[[@]] $($1_OBJS) $(LIBS_flags) $($3_LIBS_flags) $($1_CMXS)
1168 build/$2.cma: $($1_OBJS) $($1_CMOS)
1169 $(OCAMLC) -a -o $[[@]] $($1_OBJS) $(LIBS_flags) $($3_LIBS_flags) $($1_CMOS)
1174 define(EXPAND_DRIVER,[[
1176 ifeq ("$($2)" , "yes")
1177 SUBDIRS += src/networks/$3
1179 CORE_SRCS += $($2_SRCS)
1181 endif
1183 ifeq ("$2", "DONKEY")
1184 $1_SRCS+= $(CRYPTOPP_SRCS)
1185 $1_CMXA+= $(BITSTRING_CMXA)
1186 $1+gui_CMXA+= $(BITSTRING_CMXA)
1187 else
1188 ifeq ("$2", "BITTORRENT")
1189 $1_CMXA+= $(BITSTRING_CMXA)
1190 $1+gui_CMXA+= $(BITSTRING_CMXA)
1191 endif
1192 endif
1194 $1_CMXA+= extlib.cmxa cdk.cmxa magic.cmxa common.cmxa client.cmxa $1.cmxa driver.cmxa
1196 $1_SRCS+= $(MAIN_SRCS)
1198 EXPAND_LIB($2,$1)
1200 ifeq ("$(GUI)", "newgui2")
1201 $1+gui_CMXA+=extlib.cmxa cdk.cmxa \
1202 magic.cmxa common.cmxa client.cmxa $1.cmxa driver.cmxa \
1203 icons.cmxa guibase.cmxa gui.cmxa
1204 else
1205 $1+gui_CMXA+=extlib.cmxa cdk.cmxa \
1206 magic.cmxa common.cmxa client.cmxa $1.cmxa driver.cmxa \
1207 gmisc.cmxa icons.cmxa guibase.cmxa gui.cmxa
1208 endif
1210 $1+gui_SRCS= $(MAIN_SRCS)
1214 EXPAND_DRIVER(mldc,DIRECT_CONNECT,direct_connect)
1215 EXPAND_DRIVER(mlnap,OPENNAP,opennap)
1216 EXPAND_DRIVER(mlgnut,GNUTELLA,gnutella)
1217 EXPAND_DRIVER(mlg2,GNUTELLA2,gnutella2)
1218 EXPAND_DRIVER(mlfasttrack,FASTTRACK,fasttrack)
1219 EXPAND_DRIVER(mlfileTP,FILETP,fileTP)
1220 EXPAND_DRIVER(mlbt,BITTORRENT,bittorrent)
1221 EXPAND_DRIVER(mldonkey,DONKEY,donkey)
1222 EXPAND_DRIVER(mlslsk,SOULSEEK,soulseek)
1224 libextlib_SRCS= $(EXTLIB_SRCS)
1225 libcdk_SRCS= $(CDK_SRCS) $(LIB_SRCS) $(NET_SRCS) $(MP3TAG_SRCS)
1226 libmagic_SRCS= $(MAGIC_SRCS)
1227 libbitstring_SRCS= $(BITSTRING_SRCS)
1228 libcommon_SRCS= $(COMMON_SRCS)
1229 libclient_SRCS= $(COMMON_CLIENT_SRCS)
1230 ifeq ("$(GUI)", "newgui2")
1231 libgmisc_SRCS=
1232 else
1233 libgmisc_SRCS= $(CONFIGWIN_SRCS) $(MP3TAGUI_SRCS) $(OKEY_SRCS) $(GPATTERN_SRCS)
1234 endif
1235 libguibase_SRCS= $(GUI_BASE_SRCS)
1236 libgui_SRCS= $(GUI_SRCS)
1237 libgui3_SRCS= $(GUI3_SRCS)
1238 libicons_SRCS= $(ALL_ICONS_SRCS)
1240 EXPAND_LIB(libextlib,extlib)
1241 EXPAND_LIB(libicons,icons)
1242 EXPAND_LIB(libcdk,cdk)
1243 EXPAND_LIB(libmagic,magic)
1244 EXPAND_LIB(libbitstring,bitstring)
1245 EXPAND_LIB(libupnp_natpmp,upnp_natpmp)
1246 EXPAND_LIB(libcommon,common)
1247 EXPAND_LIB(libclient,client)
1248 EXPAND_LIB(DRIVER,driver)
1249 EXPAND_LIB(CORE,core)
1251 ifneq ("$(GUI)", "newgui2")
1252 EXPAND_LIB(libgmisc,gmisc)
1253 endif
1255 EXPAND_LIB(libgui,gui)
1256 EXPAND_LIB(libguibase,guibase)
1259 ######################################################################
1261 # From sources to objects files
1263 ######################################################################
1265 define([[EXPAND]],[[
1266 $1_ZOG := $(filter %.zog, $($1_SRCS))
1267 $1_MLL := $(filter %.mll, $($1_SRCS))
1268 $1_MLY := $(filter %.mly, $($1_SRCS))
1269 $1_ML4 := $(filter %.ml4, $($1_SRCS))
1270 $1_MLC4 := $(filter %.mlc4, $($1_SRCS))
1271 $1_MLT := $(filter %.mlt, $($1_SRCS))
1272 $1_MLP := $(filter %.mlcpp, $($1_SRCS))
1273 $1_ML := $(filter %.ml %.mll %.zog %.mly %.ml4 %.mlc4 %.mlt %.mlcpp, $($1_SRCS))
1274 $1_C := $(filter %.c %.cc, $($1_SRCS))
1275 $1_CMOS=$(foreach file, $($1_ML), $(basename $(file)).cmo)
1276 $1_CMXS=$(foreach file, $($1_ML), $(basename $(file)).cmx)
1277 $1_OBJS=$(foreach file, $($1_C), $(basename $(file)).o)
1279 $1_CMXAS := $(foreach file, $($1_CMXA), build/$(basename $(file)).cmxa)
1280 $1_CMAS=$(foreach file, $($1_CMXA), build/$(basename $(file)).cma)
1282 TMPSOURCES += $($1_ML4:.ml4=.ml) $($1_MLC4:.mlc4=.ml) $($1_MLT:.mlt=.ml) $($1_MLP:.mlcpp=.ml) $($1_MLL:.mll=.ml) $($1_MLY:.mly=.ml) $($1_MLY:.mly=.mli) $($1_ZOG:.zog=.ml)
1284 $2: $($1_OBJS) $($1_CMXS) $($1_CMXAS)
1285 $(OCAMLOPT) -linkall -o $[[@]] \
1286 $($1_OBJS) $(LIBS_opt) $(LIBS_flags) \
1287 $($3_LIBS_opt) $($3_LIBS_flags) \
1288 $($5_LIBS_opt) $($5_LIBS_flags) \
1289 $($6_LIBS_opt) $($6_LIBS_flags) \
1290 $($7_LIBS_opt) $($7_LIBS_flags) \
1291 $($8_LIBS_opt) $($8_LIBS_flags) \
1292 $($9_LIBS_opt) $($9_LIBS_flags) \
1293 -I build $($1_CMXAS) $($1_CMXS)
1295 $2.byte: $($1_OBJS) $($1_CMOS) $($1_CMAS)
1296 $(OCAMLC) -linkall -o $[[@]] \
1297 $($1_OBJS) $(LIBS_byte) $(LIBS_flags) \
1298 $($3_LIBS_byte) $($3_LIBS_flags) \
1299 $($5_LIBS_byte) $($5_LIBS_flags) \
1300 $($6_LIBS_byte) $($6_LIBS_flags) \
1301 $($7_LIBS_byte) $($7_LIBS_flags) \
1302 $($8_LIBS_byte) $($8_LIBS_flags) \
1303 $($9_LIBS_byte) $($9_LIBS_flags) \
1304 -I build $($1_CMAS) $($1_CMOS)
1306 $2.static: $($1_OBJS) $($1_CMXS) $($1_CMXAS)
1307 $(OCAMLOPT) -linkall -ccopt -static -o $[[@]] \
1308 $($1_OBJS) $(LIBS_opt) $(LIBS_flags) \
1309 $($3_LIBS_flags) $($3_STATIC_LIBS_opt) \
1310 $($5_LIBS_flags) $($5_STATIC_LIBS_opt) \
1311 $($6_LIBS_flags) $($6_STATIC_LIBS_opt) \
1312 $($7_LIBS_flags) $($7_STATIC_LIBS_opt) \
1313 $($8_LIBS_flags) $($8_STATIC_LIBS_opt) \
1314 $($9_LIBS_flags) $($9_STATIC_LIBS_opt) \
1315 -I build $($1_CMXAS) $($1_CMXS)
1317 $2.byte.static: $($1_OBJS) $($1_CMOS) $($1_CMAS)
1318 $(OCAMLC) -linkall -ccopt -static -o $[[@]] \
1319 $($1_OBJS) $(LIBS_byte) $(LIBS_flags) \
1320 $($3_LIBS_flags) $($3_STATIC_LIBS_opt) \
1321 $($5_LIBS_flags) $($5_STATIC_LIBS_opt) \
1322 $($6_LIBS_flags) $($6_STATIC_LIBS_opt) \
1323 $($7_LIBS_flags) $($7_STATIC_LIBS_opt) \
1324 $($8_LIBS_flags) $($8_STATIC_LIBS_opt) \
1325 $($9_LIBS_flags) $($9_STATIC_LIBS_opt) \
1326 -I build $($1_CMAS) $($1_CMOS)
1329 # $1 = source-code collection
1330 # $2 = make target
1331 # $3 = GUI type (NO/GTK)
1332 # $4 = not used
1333 # $5 = if set link GD code
1334 # $6 = if set link CryptoPP code (only for targets mlnet, mldonkey)
1335 # $7 = if set link libmagic code (only for p2p core, not for GUIs, tools etc.)
1336 # $8 = if set link libbitstring code (only for Bittorrent p2p core)
1337 # $9 = if set link libminiupnpc & libnatpmp code
1339 EXPAND(mldonkey,mldonkey,NO,mldonkey,GD,CRYPTOPP,MAGIC,BITSTRING,UPNP_NATPMP)
1340 EXPAND(mldonkey+gui,mldonkey+gui,GTK,mldonkey+gui,GD,CRYPTOPP,MAGIC,BITSTRING,UPNP_NATPMP)
1341 EXPAND(MLPROGRESS, mlprogress,GTK, MLPROGRESS)
1342 EXPAND(MLDONKEYGUI,mlgui,GTK,MLDONKEYGUI)
1344 ifeq ("$(GUI)", "oldgui")
1345 EXPAND(MLDONKEYGUI2,mlgui2,GTK,MLDONKEYGUI2)
1346 endif
1348 EXPAND(mldc,mldc,NO,mldc,GD,NO,MAGIC,NO,UPNP_NATPMP)
1349 EXPAND(mldc+gui,mldc+gui,GTK,mldc+gui,GD,NO,MAGIC,NO,UPNP_NATPMP)
1350 EXPAND(mlnap,mlnap,NO,mlnap,GD,NO,MAGIC,UPNP_NATPMP)
1351 EXPAND(mlnap+gui,mlnap+gui,GTK,mlnap+gui,GD,NO,MAGIC,NO,UPNP_NATPMP)
1352 EXPAND(MLNET,mlnet,NO,MLNET,GD,CRYPTOPP,MAGIC,BITSTRING,UPNP_NATPMP)
1353 EXPAND(mlnet+gui,mlnet+gui,GTK,mlnet+gui,GD,CRYPTOPP,MAGIC,BITSTRING,UPNP_NATPMP)
1354 EXPAND(mlgnut,mlgnut,NO,mlgnut,GD,NO,MAGIC,NO,UPNP_NATPMP)
1355 EXPAND(mlgnut+gui,mlgnut+gui,GTK,mlgnut+gui,GD,NO,MAGIC,NO,UPNP_NATPMP)
1356 EXPAND(mlg2,mlg2,NO,mlg2,GD,NO,MAGIC,NO,UPNP_NATPMP)
1357 EXPAND(mlg2+gui,mlg2+gui,GTK,mlg2+gui,GD,NO,MAGIC,NO,UPNP_NATPMP)
1358 EXPAND(mlbt,mlbt,NO,mlbt,GD,NO,MAGIC,BITSTRING,UPNP_NATPMP)
1359 EXPAND(mlbt+gui,mlbt+gui,GTK,mlbt+gui,GD,NO,MAGIC,BITSTRING,UPNP_NATPMP)
1360 EXPAND(mlfasttrack,mlfasttrack,NO,mlfasttrack,GD,NO,MAGIC,NO,UPNP_NATPMP)
1361 EXPAND(mlfasttrack+gui,mlfasttrack+gui,GTK,mlfasttrack+gui,GD,NO,MAGIC,NO,UPNP_NATPMP)
1362 EXPAND(mlfileTP,mlfiletp,NO,mlfileTP,GD,NO,MAGIC,NO,UPNP_NATPMP)
1363 EXPAND(mlfileTP+gui,mlfiletp+gui,GTK,mlfileTP+gui,GD,NO,MAGIC,NO,UPNP_NATPMP)
1364 EXPAND(mlslsk,mlslsk,NO,mlslsk,GD,NO,MAGIC,NO,UPNP_NATPMP)
1365 EXPAND(mlslsk+gui,mlslsk+gui,GTK,mlslsk+gui,GD,NO,MAGIC,NO,UPNP_NATPMP)
1366 EXPAND(STARTER,mlguistarter,GTK)
1367 EXPAND(OBSERVER,observer)
1368 EXPAND(MLD_HASH,mld_hash)
1369 EXPAND(OCAMLPP,ocamlpp)
1370 EXPAND(MAKE_TORRENT,make_torrent,NO,NO,NO,NO,MAGIC,BITSTRING,UPNP_NATPMP)
1371 EXPAND(BT_DHT_NODE,bt_dht_node,NO,NO,NO,NO,NO,BITSTRING,UPNP_NATPMP)
1372 EXPAND(SUBCONV,subconv)
1373 EXPAND(MLSPLIT,mlsplit)
1374 EXPAND(CONTESTER,contester,CRYPT)
1375 EXPAND(SAFEEXEC,safeexec,CRYPT)
1376 EXPAND(GET_RANGE,get_range)
1377 EXPAND(COPYSOURCES,copysources)
1378 EXPAND(INSTALLER,mldonkey_installer,GTK,INSTALLER)
1379 EXPAND(MLPIC,mlpic)
1380 EXPAND(SPIDER,mlspider)
1381 EXPAND(DISASM,disasm,CURSES)
1382 EXPAND(ANALYSER1,analyser1,BIGARRAY)
1383 EXPAND(BTVIEW,btview)
1384 EXPAND(CLUSTER,cluster)
1385 EXPAND(TESTRSS,testrss)
1386 EXPAND(SVG_CONVERTER,svg_converter)
1387 EXPAND(TESTS,tests,NO,MLNET,GD,CRYPTOPP,MAGIC,BITSTRING,UPNP_NATPMP)
1389 #######################################################################
1391 ## Other rules
1393 #######################################################################
1395 TOP_ZOG := $(filter %.zog, $(TOP_SRCS))
1396 TOP_MLL := $(filter %.mll, $(TOP_SRCS))
1397 TOP_MLY := $(filter %.mly, $(TOP_SRCS))
1398 TOP_ML4 := $(filter %.ml4, $(TOP_SRCS))
1399 TOP_ML := $(filter %.ml %.mll %.zog %.mly %.ml4, $(TOP_SRCS))
1400 TOP_C := $(filter %.c, $(TOP_SRCS))
1401 TOP_CMOS=$(foreach file, $(TOP_ML), $(basename $(file)).cmo)
1402 TOP_CMXS=$(foreach file, $(TOP_ML), $(basename $(file)).cmx)
1403 TOP_OBJS=$(foreach file, $(TOP_C), $(basename $(file)).o)
1405 TOP_CMXAS :=$(foreach file, $(TOP_CMXA), build/$(basename $(file)).cmxa)
1406 TOP_CMAS=$(foreach file, $(TOP_CMXA), build/$(basename $(file)).cma)
1408 TMPSOURCES += $(TOP_ML4:.ml4=.ml) $(TOP_MLL:.mll=.ml) $(TOP_MLY:.mly=.ml) $(TOP_MLY:.mly=.mli) $(TOP_ZOG:.zog=.ml)
1410 mldonkeytop: $(TOP_OBJS) $(TOP_CMOS) $(TOP_CMAS)
1411 $(OCAMLMKTOP) -linkall -o $@ \
1412 $(TOP_OBJS) \
1413 $(LIBS_byte) $(LIBS_flags) $(_LIBS_byte) $(_LIBS_flags) \
1414 $(CRYPTOPP_LIBS_byte) $(CRYPTOPP_LIBS_flags) \
1415 $(MAGIC_LIBS_byte) $(MAGIC_LIBS_flags) \
1416 -I build $(TOP_CMAS) $(TOP_CMOS)
1419 #######################################################################
1421 ## Other rules
1423 #######################################################################
1426 opt: $(RESFILE) $(TMPSOURCES) $(TARGETS)
1428 byte: $(TMPSOURCES) $(foreach target, $(TARGETS), $(target).byte)
1430 static: $(foreach target, $(TARGETS), $(target).static)
1432 ocamldoc: ocamldoc_html
1434 ocamldoc_html: $(CORE_DOC) $(libclient_DOC)
1435 mkdir -p ocamldoc
1436 $(OCAMLDOC) -sort -dump ocamldoc/ocamldocdump -html -d ocamldoc $(INCLUDES) $(libclient_DOC) $(CORE_DOC)
1438 $(LIB)/md4_cc.o: $(LIB)/md4.c
1439 $(OCAMLC) -ccopt "$(CFLAGS) -o $(LIB)/md4_cc.o" -ccopt "" -c $(LIB)/md4.c
1441 $(CDK)/heap_c.o: $(CDK)/heap_c.c
1442 $(OCAMLC) -ccopt "$(CFLAGS) $(MORECFLAGS) -o $(CDK)/heap_c.o" -ccopt "" -c $(CDK)/heap_c.c
1444 $(LIB)/md4_as.o: $(LIB)/md4_$(MD4ARCH).s
1445 as -o $(LIB)/md4_as.o $(LIB)/md4_$(MD4ARCH).s
1447 $(LIB)/md4_comp.o: $(LIB)/md4_$(MD4COMP).o
1448 cp -f $(LIB)/md4_$(MD4COMP).o $(LIB)/md4_comp.o
1451 zogml:
1452 (for i in $(GUI_CODE)/gui*_base.zog ; do \
1453 $(CAMLP4) pa_o.cmo pa_zog.cma pr_o.cmo -impl $$i -o $(GUI_CODE)/`basename $$i zog`ml ;\
1454 done)
1456 #######################################################################
1458 # Other rules
1460 #######################################################################
1462 TAGS:
1463 otags -r .
1464 etags -a `find . -name "*.[chs]" -o -name "*.cc"`
1466 clean:
1467 rm -f *.cm? donkey_* *.byte *.cm?? $(TARGETS) *~ TAGS *.o core *.static *.a
1468 rm -f build/*.a build/*.cma build/*.cmxa
1469 rm -f *_plugin
1470 rm -f mldonkey mlgui mlnet.exe mlgui.exe mldonkeytop mldonkeytop.exe
1471 rm -f mlbt mlbt+gui mlbt.exe
1472 rm -f mlfiletp mlfiletp+gui mlfiletp.exe
1473 rm -f mldc mldc+gui mldc.exe
1474 rm -f mlfasttrack mlfasttrack+gui mlfasttrack.exe
1475 rm -f svg_converter svg_converter.byte mld_hash make_torrent bt_dht_node copysources get_range subconv testrss
1476 rm -f svg_converter.exe mld_hash.exe make_torrent.exe bt_dht_node.exe copysources.exe get_range.exe subconv.exe testrss.exe
1477 rm -f tests tests.exe
1478 (for i in $(SUBDIRS); do \
1479 rm -f $$i/*.cm? $$i/*.o $$i/*.annot ; \
1480 done)
1482 tmpclean:
1483 rm -f $(TMPSOURCES)
1485 moreclean: clean tmpclean
1487 releaseclean: clean moreclean
1488 rm -f .depend
1489 rm -rf patches/build
1490 rm -f config/Makefile.config
1491 rm -f config/mldonkey.rc
1492 rm -f config/config.cache config/config.log config/config.status
1493 rm -f config/config.h
1494 rm -f config/confdefs.h
1495 rm -rf config/autom4te.cache/
1496 rm -f packages/rpm/*.spec
1497 rm -f packages/rpm/Makefile
1498 rm -f packages/slackware/mldonkey.options
1499 rm -f packages/windows/mlnet.nsi
1500 rm -f src/daemon/driver/driverGraphics.ml
1501 rm -f src/networks/bittorrent/bTUdpTracker.ml
1502 rm -f src/networks/donkey/donkeySui.ml
1503 rm -f src/networks/donkey/donkeyNodesDat.ml
1504 rm -f src/utils/bitstring/bitstring.ml
1505 rm -f src/utils/bitstring/bitstring_persistent.ml
1506 rm -f src/utils/lib/autoconf.ml
1507 rm -f src/utils/lib/autoconf.ml.new
1508 rm -f src/utils/lib/gAutoconf.ml
1509 rm -f src/utils/lib/gAutoconf.ml.new
1510 rm -f src/utils/lib/magic.ml
1511 rm -f src/utils/lib/misc2.ml
1512 rm -f src/utils/cdk/tar.ml
1513 rm -f icons/tux/*.ml_icons
1514 rm -f icons/tux/*.ml
1515 rm -f icons/kde/*.ml_icons
1516 rm -f icons/kde/*.ml
1517 rm -f icons/mldonkey/*.ml_icons
1518 rm -f icons/mldonkey/*.ml
1519 rm -f icons/rsvg/*.ml_icons
1520 rm -f icons/rsvg/*.ml
1521 rm -f tools/zoggy/*.cm?
1522 rm -rf ocamldoc
1523 rm -rf mldonkey-distrib*
1524 rm -f mldonkey-$(CURRENT_VERSION).*
1526 distclean: releaseclean
1527 rm -rf patches/local
1528 rm -rf mldonkey-distrib-*
1529 rm -rf *.tar.bz2
1531 maintainerclean: distclean
1532 echo rm -f $(GUI_CODE)/gui.ml $(GUI_CODE)/gui_zog.ml
1533 rm -f config/configure
1534 rm -f Makefile
1536 .PHONY: TAGS clean tmpclean moreclean releaseclean distclean maintainerclean ocamldoc_html
1538 LOCAL=patches/build
1540 PA_ZOG_FILES=tools/zoggy/zog_types.ml tools/zoggy/zog_messages.ml tools/zoggy/zog_misc.ml tools/zoggy/pa_zog.ml
1542 pa_zog.cma: $(PA_ZOG_FILES)
1543 $(OCAMLC) -I tools/zoggy -I +camlp4 -pp "$(CAMLP4OF) -loc loc" -a -o pa_zog.cma $(PA_ZOG_FILES)
1546 OCAMLPP=./ocamlpp.byte
1548 $(ZOGSOURCES): pa_zog.cma
1549 $(MLTSOURCES): $(OCAMLPP)
1550 #$(TMPSOURCES): $(OCAMLPP)
1552 #ocamlpp.byte: tools/ocamlpp.ml
1553 # $(OCAMLC) str.cma -o ocamlpp.byte tools/ocamlpp.ml
1555 ifeq ("$(GUI_CODE)", "OLDGUI")
1557 PA_ZOG: pa_zog.cma
1559 endif
1561 resfile.o:
1562 windres -o resfile.o config/mldonkey.rc
1564 depend: $(RESFILE) \
1565 $(PA_ZOG) $(LIB)/http_lexer.ml $(TMPSOURCES)
1566 @$(OCAMLDEP) $(OCAMLDEP_OPTIONS) $(patsubst -I +labl$(GTK),,$(INCLUDES)) *.ml *.mli > .depend
1567 @(for i in $(SUBDIRS); do \
1568 $(OCAMLDEP) $(OCAMLDEP_OPTIONS) $(patsubst -I +labl$(GTK),,$(INCLUDES)) $$i/*.ml $$i/*.mli >> .depend; \
1569 $(OCAMLPP) $$i/*.mlt >> .depend; \
1570 done)
1571 @if test "$(GUI)" = "newgui2"; then \
1572 $(MAKE) svg_converter.byte; \
1575 $(LOCAL)/ocamlopt-$(REQUIRED_OCAML)/Makefile: patches/ocamlopt-$(REQUIRED_OCAML).tar.gz
1576 rm -rf $(LOCAL)/ocamlopt-$(REQUIRED_OCAML)
1577 mkdir -p $(LOCAL)
1578 cd $(LOCAL); \
1579 gzip -cd ../ocamlopt-$(REQUIRED_OCAML).tar.gz | tar xf -; \
1580 touch ocamlopt-$(REQUIRED_OCAML)/Makefile
1582 $(LOCAL)/ocamlopt-$(REQUIRED_OCAML)/ocamlopt: $(LOCAL)/ocamlopt-$(REQUIRED_OCAML)/Makefile
1583 cd $(LOCAL)/ocamlopt-$(REQUIRED_OCAML); $(MAKE)
1585 ifeq ("$(BITTORRENT)", "yes")
1586 BT_UTILS=make_torrent bt_dht_node
1587 BT_UTILS_BYTE=$(foreach x, $(BT_UTILS), $(x).byte)
1588 BT_UTILS_STATIC=$(foreach x, $(BT_UTILS), $(x).static)
1589 BT_UTILS_BYTE_STATIC=$(foreach x, $(BT_UTILS), $(x).byte.static)
1590 endif
1592 utils.byte: mld_hash.byte $(BT_UTILS_BYTE) copysources.byte get_range.byte subconv.byte
1593 utils.opt: svg_converter mld_hash $(BT_UTILS) copysources get_range subconv
1594 utils.opt.static: svg_converter mld_hash.static $(BT_UTILS_STATIC) copysources.static get_range.static subconv.static
1595 utils.byte.static: mld_hash.byte.static $(BT_UTILS_BYTE_STATIC) copysources.byte.static get_range.byte.static subconv.byte.static
1596 utils.static:
1597 if test "$(TARGET_TYPE)" = "byte"; then \
1598 $(MAKE) utils.byte.static; \
1599 else \
1600 $(MAKE) utils.opt.static; \
1602 utils:
1603 if test "$(TARGET_TYPE)" = "byte"; then \
1604 $(MAKE) utils.byte; \
1605 else \
1606 $(MAKE) utils.opt; \
1609 #######################################################################
1611 # Building binary distribs
1613 #######################################################################
1615 DISDIR=mldonkey-distrib
1616 #distrib/Readme.txt: $(GUI_CODE)/gui_messages.ml
1617 # grep -A 1000 help_text $(GUI_CODE)/gui_messages.ml | grep -v '"' > distrib/Readme.txt
1620 debug:
1621 rm -f $(CDK)/heap_c.o
1622 MORECFLAGS="-I patches/ocaml-3.06/ -DHEAP_DUMP" $(MAKE) $(CDK)/heap_c.o
1623 $(MAKE)
1625 RELEASE_TARGETS=mlnet
1627 ifneq ("$(GUI)" , "no")
1628 RELEASE_TARGETS += mlgui mlnet+gui mlguistarter
1629 endif
1631 release.shared: opt
1632 rm -rf mldonkey-*
1633 cp -R distrib $(DISDIR)
1634 for i in $(RELEASE_TARGETS); do \
1635 cp -f $$i $(DISDIR)/$$i && \
1636 if [ "$(SYSTEM)" != "macos" ]; then \
1637 strip $(DISDIR)/$$i; \
1638 fi \
1639 done
1640 mv $(DISDIR) $(DISDIR)-$(CURRENT_VERSION)
1641 tar cf $(DISDIR).tar $(DISDIR)-$(CURRENT_VERSION)
1642 mv $(DISDIR).tar mldonkey-$(CURRENT_VERSION).shared.$(MD4ARCH)-`uname -s | sed "s/\//_/"`$(GLIBC_VERSION_ARCH).tar
1643 $(COMPRESS) mldonkey-$(CURRENT_VERSION).shared.$(MD4ARCH)-`uname -s`$(GLIBC_VERSION_ARCH).tar
1645 release.static: static opt
1646 rm -rf mldonkey-*
1647 cp -R distrib $(DISDIR)
1648 for i in $(RELEASE_TARGETS); do \
1649 cp $$i.static $(DISDIR)/$$i && strip $(DISDIR)/$$i; \
1650 done
1651 mv $(DISDIR) $(DISDIR)-$(CURRENT_VERSION)
1652 tar cf $(DISDIR).tar $(DISDIR)-$(CURRENT_VERSION)
1653 mv $(DISDIR).tar mldonkey-$(CURRENT_VERSION).static.$(MD4ARCH)-`uname -s | sed "s/\//_/"`$(GLIBC_VERSION_ARCH).tar
1654 $(COMPRESS) mldonkey-$(CURRENT_VERSION).static.$(MD4ARCH)-`uname -s | sed "s/\//_/"`$(GLIBC_VERSION_ARCH).tar
1656 release.mlnet.static: mlnet.static
1657 rm -rf mldonkey-*
1658 cp -R distrib $(DISDIR)
1659 cp mlnet.static $(DISDIR)/mlnet && strip $(DISDIR)/mlnet
1660 mv $(DISDIR) $(DISDIR)-$(CURRENT_VERSION)
1661 tar cf $(DISDIR).tar $(DISDIR)-$(CURRENT_VERSION)
1662 mv $(DISDIR).tar mldonkey-$(CURRENT_VERSION).static.$(MD4ARCH)-`uname -s | sed "s/\//_/"`$(GLIBC_VERSION_ARCH).tar
1663 $(COMPRESS) mldonkey-$(CURRENT_VERSION).static.$(MD4ARCH)-`uname -s | sed "s/\//_/"`$(GLIBC_VERSION_ARCH).tar
1665 release.mlnet.byte.static: mlnet.byte.static
1666 rm -rf mldonkey-*
1667 cp -R distrib $(DISDIR)
1668 cp mlnet.byte.static $(DISDIR)/mlnet
1669 mv $(DISDIR) $(DISDIR)-$(CURRENT_VERSION)
1670 tar cf $(DISDIR).tar $(DISDIR)-$(CURRENT_VERSION)
1671 mv $(DISDIR).tar mldonkey-$(CURRENT_VERSION).byte.static.$(MD4ARCH)-`uname -s | sed "s/\//_/"`$(GLIBC_VERSION_ARCH).tar
1672 $(COMPRESS) mldonkey-$(CURRENT_VERSION).byte.static.$(MD4ARCH)-`uname -s | sed "s/\//_/"`$(GLIBC_VERSION_ARCH).tar
1674 release.mlnet.distri: mlnet mlnet.static
1675 rm -rf mldonkey-*
1676 cp -R distrib $(DISDIR)
1677 for i in "mlnet mlnet.static"; do \
1678 cp -f $$i $(DISDIR)/$$i && \
1679 if [ "$(SYSTEM)" != "macos" ]; then \
1680 strip $(DISDIR)/$$i; \
1681 fi \
1682 done
1683 mv $(DISDIR) $(DISDIR)-$(CURRENT_VERSION)
1684 tar cf $(DISDIR).tar $(DISDIR)-$(CURRENT_VERSION)
1685 mv $(DISDIR).tar mldonkey-$(CURRENT_VERSION).static.$(MD4ARCH)-`uname -s | sed "s/\//_/"`$(GLIBC_VERSION_ARCH).tar
1686 $(COMPRESS) mldonkey-$(CURRENT_VERSION).static.$(MD4ARCH)-`uname -s | sed "s/\//_/"`$(GLIBC_VERSION_ARCH).tar
1688 release.utils.shared: mld_hash $(BT_UTILS)
1689 rm -rf mldonkey-*
1690 mkdir -p $(DISDIR)
1691 for i in "mld_hash $(BT_UTILS)"; do \
1692 cp -f $$i $(DISDIR)/$$i && \
1693 if [ "$(SYSTEM)" != "macos" ]; then \
1694 strip $(DISDIR)/$$i; \
1695 fi \
1696 done
1697 mv $(DISDIR) $(DISDIR)-$(CURRENT_VERSION)
1698 tar cf $(DISDIR).tar $(DISDIR)-$(CURRENT_VERSION)
1699 mv $(DISDIR).tar mldonkey-tools-$(CURRENT_VERSION).shared.$(MD4ARCH)-`uname -s | sed "s/\//_/"`$(GLIBC_VERSION_ARCH).tar
1700 $(COMPRESS) mldonkey-tools-$(CURRENT_VERSION).shared.$(MD4ARCH)-`uname -s | sed "s/\//_/"`$(GLIBC_VERSION_ARCH).tar
1702 release.utils.static: mld_hash.static $(BT_UTILS_STATIC)
1703 rm -rf mldonkey-*
1704 mkdir -p $(DISDIR)
1705 cp -f mld_hash.static $(DISDIR)/mld_hash && strip $(DISDIR)/mld_hash
1706 ifeq ("$(BITTORRENT)", "yes")
1707 for i in $(BT_UTILS); do cp -f $$i.static $(DISDIR)/$$i && strip $(DISDIR)/$$i; done
1708 endif
1709 mv $(DISDIR) $(DISDIR)-$(CURRENT_VERSION)
1710 tar cf $(DISDIR).tar $(DISDIR)-$(CURRENT_VERSION)
1711 mv $(DISDIR).tar mldonkey-tools-$(CURRENT_VERSION).static.$(MD4ARCH)-`uname -s | sed "s/\//_/"`$(GLIBC_VERSION_ARCH).tar
1712 $(COMPRESS) mldonkey-tools-$(CURRENT_VERSION).static.$(MD4ARCH)-`uname -s | sed "s/\//_/"`$(GLIBC_VERSION_ARCH).tar
1714 release.sources:
1715 rm -rf **/CVS
1716 rm -f config/Makefile.config
1717 cd ..; tar zcf mldonkey-$(CURRENT_VERSION).sources.tar.gz mldonkey
1719 distrib: $(DISDIR)
1721 $(DISDIR): static distrib/Readme.txt
1722 rm -rf mldonkey-*
1723 cp -R distrib $(DISDIR)
1724 rm -rf $(DISDIR)/CVS
1725 for i in $(RELEASE_TARGETS); do \
1726 cp $$i.static $(DISDIR)/$$i && strip $(DISDIR)/$$i; \
1727 done
1728 tar cf $(DISDIR).tar $(DISDIR)
1729 mv $(DISDIR).tar mldonkey-$(CURRENT_VERSION).static.$(MD4ARCH)-`uname -s | sed "s/\//_/"`.tar
1730 bzip2 mldonkey-$(CURRENT_VERSION).static.$(MD4ARCH)-`uname -s | sed "s/\//_/"`.tar
1732 SHADIR=mldonkey-shared
1734 shared: $(SHADIR)
1736 $(SHADIR): static distrib/Readme.txt
1737 rm -rf mldonkey-*
1738 cp -R distrib $(SHADIR)
1739 rm -rf $(SHADIR)/CVS
1740 for i in $(RELEASE_TARGETS); do \
1741 cp $$i.static $(SHADIR)/$$i && strip $(SHADIR)/$$i; \
1742 done
1743 tar cf $(SHADIR).tar $(SHADIR)
1744 mv $(SHADIR).tar mldonkey-$(CURRENT_VERSION).shared.$(MD4ARCH)-`uname -s | sed "s/\//_/"`.tar
1745 bzip2 mldonkey-$(CURRENT_VERSION).shared.$(MD4ARCH)-`uname -s | sed "s/\//_/"`.tar
1747 auto-release:
1748 ## i386
1749 mkdir -p $(HOME)/release-$(CURRENT_VERSION)
1750 ./configure --host=i386-pc-linux-gnu
1751 rm -f mlnet mlnet.static mlnet+gui mlnet+gui.static $(LIB)/md4_comp.* $(LIB)/md4_as.*
1752 $(MAKE) opt static
1753 $(MAKE) distrib
1754 cp mldonkey-$(CURRENT_VERSION).static.i386-Linux.tar.bz2 $(HOME)/release-$(CURRENT_VERSION)/
1755 $(MAKE) shared
1756 cp mldonkey-$(CURRENT_VERSION).shared.i386-Linux.tar.bz2 $(HOME)/release-$(CURRENT_VERSION)/
1757 ## i686
1758 mkdir -p $(HOME)/release-$(CURRENT_VERSION)
1759 ./configure --host=i686-pc-linux-gnu
1760 rm -f mlnet+gui mlnet+gui.static mlnet mlnet.static $(LIB)/md4_comp.* $(LIB)/md4_as.*
1761 $(MAKE) opt static
1762 $(MAKE) distrib
1763 cp mldonkey-$(CURRENT_VERSION).static.i686-Linux.tar.bz2 $(HOME)/release-$(CURRENT_VERSION)/
1764 $(MAKE) shared
1765 cp mldonkey-$(CURRENT_VERSION).shared.i686-Linux.tar.bz2 $(HOME)/release-$(CURRENT_VERSION)/
1766 ## i586
1767 mkdir -p $(HOME)/release-$(CURRENT_VERSION)
1768 ./configure --host=i586-pc-linux-gnu
1769 rm -f mlnet+gui mlnet+gui.static mlnet mlnet.static $(LIB)/md4_comp.* $(LIB)/md4_as.*
1770 $(MAKE) opt static
1771 $(MAKE) distrib
1772 cp mldonkey-$(CURRENT_VERSION).static.i586-Linux.tar.bz2 $(HOME)/release-$(CURRENT_VERSION)/
1773 $(MAKE) shared
1774 cp mldonkey-$(CURRENT_VERSION).shared.i586-Linux.tar.bz2 $(HOME)/release-$(CURRENT_VERSION)/
1775 ## i486
1776 mkdir -p $(HOME)/release-$(CURRENT_VERSION)
1777 ./configure --host=i486-pc-linux-gnu
1778 rm -f mlnet+gui mlnet+gui.static mlnet mlnet.static $(LIB)/md4_comp.* $(LIB)/md4_as.*
1779 $(MAKE) opt static
1780 $(MAKE) distrib
1781 cp mldonkey-$(CURRENT_VERSION).static.i486-Linux.tar.bz2 $(HOME)/release-$(CURRENT_VERSION)/
1782 $(MAKE) shared
1783 cp mldonkey-$(CURRENT_VERSION).shared.i486-Linux.tar.bz2 $(HOME)/release-$(CURRENT_VERSION)/
1785 buildrpm:
1786 ./configure --host=i586-pc-linux-gnu
1787 $(MAKE) clean
1788 $(MAKE) opt
1789 rm -rf ../mldonkey-rpm rpm/mldonkey
1790 rm -f rpm/mldonkey.sources.tar.bz2
1791 cp -dpR . ../mldonkey-rpm
1792 mv ../mldonkey-rpm rpm/mldonkey
1793 cd rpm/mldonkey; rm -rf **/*.cm? **/*.o
1794 cd rpm; tar jcf mldonkey.sources.tar.bz2 mldonkey
1795 rm -rf rpm/mldonkey
1799 sourcedist: copysources
1800 ./copysources
1801 cp packages/rpm/mldonkey.spec /tmp/mldonkey/
1802 cp packages/rpm/mldonkey.init /tmp/mldonkey/distrib/
1803 cp packages/rpm/mldonkey.sysconfig /tmp/mldonkey/distrib/
1804 cd /tmp; tar jcf /tmp/mldonkey.sources.tar.bz2 mldonkey
1805 cp /tmp/mldonkey.sources.tar.bz2 .
1807 rpm: sourcedist
1808 $(RPMBUILD) -ta mldonkey.sources.tar.bz2
1811 #######################################################################
1813 ## Specific rules
1815 #######################################################################
1818 -include .depend
1820 .SUFFIXES: .mli .ml .cmx .cmo .o .c .cmi .mll .mly .zog .plugindep .xpm .ml .cc .ml_icons .ml4 .mlc4 .mlt .mlii .mlcpp .svg
1822 .mli.cmi :
1823 $(OCAMLC) $(INCLUDES) -c $<
1825 .ml.mlii :
1826 rm -f $*.mli
1827 $(OCAMLC) -i $(INCLUDES) -c $< > $*.mlii
1828 mv $*.mlii $*.mli
1830 .ml.cmi :
1831 $(OCAMLC) $(INCLUDES) -c $<
1833 .xpm.ml_icons :
1834 echo "let t = [|" > $@
1835 grep '"' $< | sed 's/",$$/";/' | sed 's/"};$$/"/' >> $@
1836 echo "|]" >> $@
1837 echo "let mini = [|" >> $@
1838 grep '"' $*_mini.xpm | sed 's/",$$/";/' | sed 's/"};$$/"/' >> $@
1839 echo "|]" >> $@
1840 cp -f $@ $*_xpm.ml
1842 .svg.ml_icons :
1843 cp $< $@
1844 ./svg_converter.byte $@
1846 .ml.cmx :
1847 $(OCAMLOPT) $(DEVFLAGSOPT) $(DEVFLAGS) $(INCLUDES) -c $<
1849 .ml.cmo :
1850 $(OCAMLC) $(DEVFLAGS) $(INCLUDES) -c $<
1852 .mlcpp.ml:
1853 @$(CPP) -x c -P $< $(FIX_BROKEN_CPP) > $@
1855 %.ml: %.mlp $(BITSTRING)/pa_bitstring.cmo
1856 $(CAMLP4OF) build/bitstring.cma $(BITSTRING)/bitstring_persistent.cmo $(BITSTRING)/pa_bitstring.cmo -impl $< -o $@
1858 .mll.ml :
1859 @$(OCAMLLEX) -q $<
1861 .mly.ml :
1862 @$(OCAMLYACC) $<
1864 .mly.mli:
1865 @$(OCAMLYACC) $<
1867 .zog.ml:
1868 @$(CAMLP4) pa_o.cmo ./pa_zog.cma pr_o.cmo -impl $< -o $@
1870 .ml4.ml:
1871 @$(CAMLP4) pa_o.cmo pa_op.cmo pr_o.cmo -impl $< -o $@
1873 .mlc4.ml:
1874 @$(CAMLP4OF) -I +camlp4 -impl $< -o $@
1876 .mlt.ml:
1877 @$(OCAMLPP) -o $@ -pp $<
1879 .c.o :
1880 $(OCAMLC) -verbose -ccopt "-I $(OCAML_SRC)/byterun -o $*.o" -ccopt "$(CFLAGS)" $(LIBS_flags) -c $<
1882 .cc.o :
1883 $(CXX) $(CXXFLAGS) $(CRYPTOPPFLAGS) -o $*.o "-I$(OCAMLLIB)" -c $<
1885 .cmo.byte:
1886 $(OCAMLC) -o $*.byte $(LIBS) $<
1888 .cmx.opt:
1889 $(OCAMLOPT) -o $*.opt $(OPTLIBS) $<
1892 .plugindep:
1893 echo toto
1895 src/utils/lib/sha1_c.o: src/utils/lib/sha1_c.h \
1896 src/utils/lib/os_stubs.h
1898 src/daemon/common/commonHasher_c.o: src/utils/lib/sha1_c.h
1899 src/utils/lib/stubs_c.o: src/utils/lib/sha1_c.h