1AM_CPPFLAGS = $(MULECPPFLAGS) 2AM_CFLAGS = $(MULECFLAGS) 3AM_CXXFLAGS = $(MULECXXFLAGS) 4AM_LDFLAGS = $(MULELDFLAGS) 5 6SUBDIRS = libs utils pixmaps 7 8if WEB 9# build webserver after current 10SUBDIRS += . webserver 11endif 12 13if INSTALL_SKINS 14SUBDIRS += skins 15endif 16 17EXTRA_DIST = \ 18 aMule.xpm \ 19 LibSocketAsio.cpp \ 20 LibSocketWX.cpp \ 21 Parser.y \ 22 Scanner.l \ 23 IPFilterScanner.l \ 24 muuli.wdr 25 26bin_PROGRAMS = 27 28if MONOLITHIC 29bin_PROGRAMS += amule 30endif 31 32if COMPILE_CMD 33bin_PROGRAMS += amulecmd 34endif 35 36if ED2K 37bin_PROGRAMS += ed2k 38endif 39 40if AMULE_GUI 41bin_PROGRAMS += amulegui 42endif 43 44if AMULE_DAEMON 45bin_PROGRAMS += amuled 46endif 47 48# Sources 49noinst_LIBRARIES = libmulesocket.a 50if MONOLITHIC 51noinst_LIBRARIES += libmuleappcore.a libmuleappgui.a libmuleappcommon.a 52else 53if AMULE_DAEMON 54noinst_LIBRARIES += libmuleappcore.a libmuleappcommon.a 55else 56if AMULE_GUI 57noinst_LIBRARIES += libmuleappgui.a libmuleappcommon.a 58endif 59endif 60endif 61 62 63# Socket lib (WX or Asio) 64 65libmulesocket_a_SOURCES = LibSocket.cpp 66libmulesocket_a_CPPFLAGS = $(AM_CPPFLAGS) $(WXBASE_CPPFLAGS) $(BOOST_CPPFLAGS) -I$(srcdir)/libs -I$(srcdir)/include 67 68 69# Common to core/gui/monolithic 70 71libmuleappcommon_a_SOURCES = \ 72 CFile.cpp \ 73 ClientCredits.cpp \ 74 DataToText.cpp \ 75 ED2KLink.cpp \ 76 Friend.cpp \ 77 GapList.cpp \ 78 MagnetURI.cpp \ 79 MemFile.cpp \ 80 NetworkFunctions.cpp \ 81 OtherFunctions.cpp \ 82 Packet.cpp \ 83 RLE.cpp \ 84 SafeFile.cpp \ 85 SHA.cpp \ 86 Tag.cpp \ 87 TerminationProcess.cpp \ 88 Timer.cpp \ 89 kademlia/utils/UInt128.cpp 90 91libmuleappcommon_a_CPPFLAGS = $(AM_CPPFLAGS) $(WXBASE_CPPFLAGS) -I$(srcdir)/libs -I$(srcdir)/include $(CRYPTOPP_CPPFLAGS) $(LIBUPNP_CPPFLAGS) 92 93 94# Common to core/monolithic 95 96libmuleappcore_a_SOURCES = \ 97 AsyncDNS.cpp \ 98 CanceledFileList.cpp \ 99 DeadSourceList.cpp \ 100 FileArea.cpp \ 101 FileAutoClose.cpp \ 102 IPFilterScanner.cpp \ 103 Scanner.cpp \ 104 Parser.cpp \ 105 PlatformSpecific.cpp \ 106 RandomFunctions.cpp \ 107 RC4Encrypt.cpp \ 108 StateMachine.cpp \ 109 TerminationProcessAmuleweb.cpp \ 110 ThreadScheduler.cpp \ 111 UPnPBase.cpp \ 112 kademlia/kademlia/Entry.cpp \ 113 kademlia/kademlia/Indexed.cpp \ 114 kademlia/kademlia/SearchManager.cpp \ 115 kademlia/routing/RoutingBin.cpp 116 117libmuleappcore_a_CPPFLAGS = $(AM_CPPFLAGS) $(WXBASE_CPPFLAGS) -I$(srcdir)/libs -I$(srcdir)/include $(CRYPTOPP_CPPFLAGS) $(LIBUPNP_CPPFLAGS) 118 119 120# Common to gui/monolithic 121 122libmuleappgui_a_SOURCES = \ 123 BarShader.cpp \ 124 ColorFrameCtrl.cpp \ 125 EditServerListDlg.cpp \ 126 extern/wxWidgets/listctrl.cpp \ 127 FileDetailListCtrl.cpp \ 128 IP2Country.cpp \ 129 MuleColour.cpp \ 130 MuleGifCtrl.cpp \ 131 MuleListCtrl.cpp \ 132 MuleNotebook.cpp \ 133 MuleTextCtrl.cpp \ 134 MuleCollection.cpp \ 135 muuli_wdr.cpp 136 137libmuleappgui_a_CPPFLAGS = $(AM_CPPFLAGS) $(WX_CPPFLAGS) -I$(srcdir)/libs -I$(srcdir)/include $(LIBUPNP_CPPFLAGS) $(GEOIP_CPPFLAGS) 138 139core_sources = \ 140 amule.cpp \ 141 BaseClient.cpp \ 142 ClientList.cpp \ 143 ClientCreditsList.cpp \ 144 ClientTCPSocket.cpp \ 145 ClientUDPSocket.cpp \ 146 CorruptionBlackBox.cpp \ 147 DownloadClient.cpp \ 148 DownloadQueue.cpp \ 149 ECSpecialCoreTags.cpp \ 150 EMSocket.cpp \ 151 EncryptedStreamSocket.cpp \ 152 EncryptedDatagramSocket.cpp \ 153 ExternalConn.cpp \ 154 FriendList.cpp \ 155 IPFilter.cpp \ 156 KnownFileList.cpp \ 157 ListenSocket.cpp \ 158 MuleUDPSocket.cpp \ 159 SearchFile.cpp \ 160 SearchList.cpp \ 161 ServerConnect.cpp \ 162 ServerList.cpp \ 163 ServerSocket.cpp \ 164 ServerUDPSocket.cpp \ 165 SHAHashSet.cpp \ 166 SharedFileList.cpp \ 167 ThreadTasks.cpp \ 168 UploadBandwidthThrottler.cpp \ 169 UploadClient.cpp \ 170 UploadQueue.cpp \ 171 kademlia/kademlia/Kademlia.cpp \ 172 kademlia/kademlia/Prefs.cpp \ 173 kademlia/kademlia/Search.cpp \ 174 kademlia/kademlia/UDPFirewallTester.cpp \ 175 kademlia/net/KademliaUDPListener.cpp \ 176 kademlia/net/PacketTracking.cpp \ 177 kademlia/routing/Contact.cpp \ 178 kademlia/routing/RoutingZone.cpp 179 180 181gui_sources = \ 182 amule-gui.cpp \ 183 amuleDlg.cpp \ 184 AddFriend.cpp \ 185 CatDialog.cpp \ 186 ChatSelector.cpp \ 187 ChatWnd.cpp \ 188 CommentDialog.cpp \ 189 CommentDialogLst.cpp \ 190 GenericClientListCtrl.cpp \ 191 ClientDetailDialog.cpp \ 192 DirectoryTreeCtrl.cpp \ 193 FileDetailDialog.cpp \ 194 KadDlg.cpp \ 195 OScopeCtrl.cpp \ 196 PrefsUnifiedDlg.cpp \ 197 SearchDlg.cpp \ 198 ServerWnd.cpp \ 199 SharedFilesWnd.cpp \ 200 StatisticsDlg.cpp \ 201 SearchListCtrl.cpp \ 202 DownloadListCtrl.cpp \ 203 SourceListCtrl.cpp \ 204 SharedFilePeersListCtrl.cpp \ 205 FriendListCtrl.cpp \ 206 ServerListCtrl.cpp \ 207 SharedFilesCtrl.cpp \ 208 MuleTrayIcon.cpp \ 209 TransferWnd.cpp 210 211 212common_sources = \ 213 amuleAppCommon.cpp \ 214 ClientRef.cpp \ 215 ECSpecialMuleTags.cpp \ 216 KnownFile.cpp \ 217 GetTickCount.cpp \ 218 GuiEvents.cpp \ 219 HTTPDownload.cpp \ 220 Logger.cpp \ 221 PartFile.cpp \ 222 Preferences.cpp \ 223 Proxy.cpp \ 224 Server.cpp \ 225 Statistics.cpp \ 226 StatTree.cpp \ 227 UserEvents.cpp 228 229# Libs 230 231core_libs = -L. -lmuleappcore $(LIBUPNP_LDFLAGS) $(LIBUPNP_LIBS) 232gui_libs = -L. -lmuleappgui $(WX_LIBS) $(GEOIP_LDFLAGS) $(GEOIP_LIBS) 233remote_common_libs = -Llibs/common -Llibs/ec/cpp -lmulecommon -lec $(BFD_LIBS) $(ZLIB_LDFLAGS) $(ZLIB_LIBS) $(RESOLV_LIB) 234common_libs = -L. -lmuleappcommon $(remote_common_libs) -lmulesocket $(BOOST_SYSTEM_LDFLAGS) $(BOOST_SYSTEM_LIBS) $(CRYPTOPP_LDFLAGS) $(CRYPTOPP_LIBS) 235 236core_deps = libmuleappcore.a 237gui_deps = libmuleappgui.a 238remote_common_deps = libs/common/libmulecommon.a libs/ec/cpp/libec.a 239common_deps = libmuleappcommon.a $(remote_common_deps) libmulesocket.a 240 241if SYS_WIN32 242core_libs += -lshlwapi 243endif 244 245# 246# Flags 247# 248core_flags = $(BOOST_CPPFLAGS) $(LIBUPNP_CPPFLAGS) $(LIBUPNP_CFLAGS) 249gui_flags = $(WX_CPPFLAGS) $(GEOIP_CPPFLAGS) 250common_flags = -I$(srcdir)/libs -Ilibs -I$(srcdir)/include $(CRYPTOPP_CPPFLAGS) 251 252# --------- Apps --------- 253 254amulegui_SOURCES = \ 255 amule-remote-gui.cpp \ 256 $(gui_sources) \ 257 $(ec_sources) \ 258 $(common_sources) 259 260amule_SOURCES = \ 261 CaptchaDialog.cpp \ 262 CaptchaGenerator.cpp \ 263 PartFileConvert.cpp \ 264 PartFileConvertDlg.cpp \ 265 $(core_sources) \ 266 $(gui_sources) \ 267 $(ec_sources) \ 268 $(common_sources) 269 270amuled_SOURCES = \ 271 amuled.cpp \ 272 $(core_sources) \ 273 $(ec_sources) \ 274 $(common_sources) 275 276amule_DEPENDENCIES = $(common_deps) $(core_deps) $(gui_deps) 277amule_CPPFLAGS = $(AM_CPPFLAGS) $(core_flags) $(gui_flags) $(common_flags) 278amule_CXXFLAGS = $(AM_CXXFLAGS) $(WX_CFLAGS_ONLY) $(WX_CPPFLAGS_ONLY) 279amule_LDADD = $(common_libs) $(core_libs) $(gui_libs) 280 281amulegui_DEPENDENCIES = $(common_deps) $(gui_deps) 282amulegui_CPPFLAGS = $(AM_CPPFLAGS) $(gui_flags) $(common_flags) -DCLIENT_GUI 283amulegui_CXXFLAGS = $(AM_CXXFLAGS) $(WX_CFLAGS_ONLY) $(WX_CXXFLAGS_ONLY) 284amulegui_LDADD = $(common_libs) $(gui_libs) 285 286amuled_DEPENDENCIES = $(core_deps) $(common_deps) 287amuled_CPPFLAGS = $(AM_CPPFLAGS) $(WXBASE_CPPFLAGS) $(core_flags) $(common_flags) -DAMULE_DAEMON 288amuled_CXXFLAGS = $(AM_CXXFLAGS) $(WX_CFLAGS_ONLY) $(WX_CXXFLAGS_ONLY) 289amuled_LDADD = $(common_libs) $(core_libs) $(WXBASE_LIBS) 290 291ed2k_SOURCES = \ 292 ED2KLinkParser.cpp \ 293 MagnetURI.cpp \ 294 MuleCollection.cpp 295 296ed2k_CPPFLAGS = $(AM_CPPFLAGS) -DUSE_STD_STRING 297 298# on Win32 299if SYS_WIN32 300ed2k_LDADD = -lshlwapi 301endif 302# on Mac 303if NEED_CORESERVICES 304ed2k_LDFLAGS = $(AM_LDFLAGS) -framework CoreServices 305endif 306 307amulecmd_SOURCES = \ 308 TextClient.cpp \ 309 DataToText.cpp \ 310 ExternalConnector.cpp \ 311 LoggerConsole.cpp \ 312 OtherFunctions.cpp \ 313 NetworkFunctions.cpp 314 315amulecmd_DEPENDENCIES = $(remote_common_deps) libmulesocket.a 316amulecmd_CPPFLAGS = $(AM_CPPFLAGS) $(WXBASE_CPPFLAGS) $(common_flags) 317amulecmd_CXXFLAGS = $(AM_CXXFLAGS) $(WX_CFLAGS_ONLY) $(WX_CXXFLAGS_ONLY) 318#amulecmd_LDADD = $(WXBASE_LIBS) $(READLINE_LIBS) $(remote_common_libs) 319amulecmd_LDADD = -Llibs/common -Llibs/ec/cpp -L. -lmulecommon -lec -lmulesocket \ 320 $(WXBASE_LIBS) $(READLINE_LIBS) $(BFD_LIBS) $(ZLIB_LDFLAGS) $(ZLIB_LIBS) $(RESOLV_LIB) $(BOOST_SYSTEM_LDFLAGS) $(BOOST_SYSTEM_LIBS) 321 322noinst_HEADERS = \ 323 AddFriend.h \ 324 AsyncDNS.h \ 325 amule-remote-gui.h \ 326 amuleDlg.h \ 327 amule.h \ 328 amuleIPV4Address.h \ 329 ArchSpecific.h \ 330 BarShader.h \ 331 BitVector.h \ 332 CanceledFileList.h \ 333 CaptchaDialog.h \ 334 CaptchaGenerator.h \ 335 CatDialog.h \ 336 CFile.h \ 337 ChatSelector.h \ 338 ChatWnd.h \ 339 ClientCredits.h \ 340 ClientCreditsList.h \ 341 ClientDetailDialog.h \ 342 ClientList.h \ 343 ClientRef.h \ 344 ClientTCPSocket.h \ 345 ClientUDPSocket.h \ 346 ColorFrameCtrl.h \ 347 CommentDialog.h \ 348 CommentDialogLst.h \ 349 CompilerSpecific.h \ 350 Constants.h \ 351 CorruptionBlackBox.h \ 352 CryptoPP_Inc.h \ 353 DataToText.h \ 354 DeadSourceList.h \ 355 DirectoryTreeCtrl.h \ 356 DownloadListCtrl.h \ 357 DownloadQueue.h \ 358 ED2KLink.h \ 359 EditServerListDlg.h \ 360 EMSocket.h \ 361 EncryptedDatagramSocket.h \ 362 EncryptedStreamSocket.h \ 363 ExternalConnector.h \ 364 ExternalConn.h \ 365 FileArea.h \ 366 FileAutoClose.h \ 367 FileDetailDialog.h \ 368 FileDetailListCtrl.h \ 369 FileLock.h \ 370 Friend.h \ 371 FriendListCtrl.h \ 372 FriendList.h \ 373 GapList.h \ 374 GetTickCount.h \ 375 GenericClientListCtrl.h \ 376 GuiEvents.h \ 377 HTTPDownload.h \ 378 inetdownload.h \ 379 InternalEvents.h \ 380 IP2Country.h \ 381 IPFilter.h \ 382 IPFilterScanner.h \ 383 KadDlg.h \ 384 KnownFile.h \ 385 KnownFileList.h \ 386 LibSocket.h \ 387 ListenSocket.h \ 388 Logger.h \ 389 MagnetURI.h \ 390 MD4Hash.h \ 391 MemFile.h \ 392 MuleCollection.h \ 393 MuleColour.h \ 394 MuleGifCtrl.h \ 395 MuleListCtrl.h \ 396 MuleNotebook.h \ 397 MuleTextCtrl.h \ 398 MuleThread.h \ 399 MuleTrayIcon.h \ 400 MuleUDPSocket.h \ 401 MuleVersion.h \ 402 muuli_wdr.h \ 403 NetworkFunctions.h \ 404 OScopeCtrl.h \ 405 Observable.h \ 406 ObservableQueue.h \ 407 OtherFunctions.h \ 408 OtherStructs.h \ 409 Packet.h \ 410 Parser.hpp \ 411 PartFileConvert.h \ 412 PartFileConvertDlg.h \ 413 PartFile.h \ 414 PlatformSpecific.h \ 415 Preferences.h \ 416 PrefsUnifiedDlg.h \ 417 Proxy.h \ 418 RangeMap.h \ 419 RC4Encrypt.h \ 420 RLE.h \ 421 RandomFunctions.h \ 422 SafeFile.h \ 423 Scanner.h \ 424 ScopedPtr.h \ 425 SearchDlg.h \ 426 SearchExpr.h \ 427 SearchFile.h \ 428 SearchListCtrl.h \ 429 SearchList.h \ 430 ServerConnect.h \ 431 Server.h \ 432 ServerListCtrl.h \ 433 ServerList.h \ 434 ServerSocket.h \ 435 ServerUDPSocket.h \ 436 ServerWnd.h \ 437 SHA.h \ 438 SHAHashSet.h \ 439 SharedFileList.h \ 440 SharedFilePeersListCtrl.h \ 441 SharedFilesCtrl.h \ 442 SharedFilesWnd.h \ 443 SourceListCtrl.h \ 444 StateMachine.h \ 445 StatisticsDlg.h \ 446 Statistics.h \ 447 StatTree.h \ 448 Tag.h \ 449 TerminationProcess.h \ 450 TerminationProcessAmuleweb.h \ 451 TextClient.h \ 452 ThreadScheduler.h \ 453 ThreadTasks.h \ 454 ThrottledSocket.h \ 455 Timer.h \ 456 TransferWnd.h \ 457 Types.h \ 458 updownclient.h \ 459 UpDownClientEC.h \ 460 UploadBandwidthThrottler.h \ 461 UploadQueue.h \ 462 UPnPBase.h \ 463 UPnPCompatibility.h \ 464 UserEvents.h \ 465 extern/wxWidgets/listctrl.h 466 467MAINTAINERCLEANFILES = Makefile.in 468 469 470# Resources 471 472if NEED_RC 473 474SUFFIXES = .rc 475 476.rc.$(OBJEXT): 477 $(RC) $(MULERCFLAGS) -I$(top_srcdir) $(RCFLAGS) -O COFF -i "$<" -o "$@" 478 479nodist_amuled_SOURCES = amuled-version.rc 480nodist_amulecmd_SOURCES = amulecmd-version.rc 481nodist_ed2k_SOURCES = ed2k-version.rc 482amule_LDADD += amulerc.$(OBJEXT) 483amule_DEPENDENCIES += amulerc.$(OBJEXT) 484amulegui_LDADD += amuleguirc.$(OBJEXT) 485amulegui_DEPENDENCIES += amuleguirc.$(OBJEXT) 486 487amulerc.$(OBJEXT): $(srcdir)/../amule.rc amule-version.rc 488 cat $^ | \ 489 ( \ 490 abs_builddir=`pwd` ; \ 491 abs_top_srcdir=`cd $(top_srcdir) ; pwd` ; \ 492 cd $(<D) ; \ 493 $(RC) $(MULERCFLAGS) -I$${abs_top_srcdir} $(RCFLAGS) -O COFF -o "$${abs_builddir}/$@" ; \ 494 ) 495 496amuleguirc.$(OBJEXT): $(srcdir)/../amule.rc amulegui-version.rc 497 cat $^ | \ 498 ( \ 499 abs_builddir=`pwd` ; \ 500 abs_top_srcdir=`cd $(top_srcdir) ; pwd` ; \ 501 cd $(<D) ; \ 502 $(RC) $(MULERCFLAGS) -I$${abs_top_srcdir} $(RCFLAGS) -O COFF -o "$${abs_builddir}/$@" ; \ 503 ) 504 505amule-version.rc: $(top_builddir)/version.rc 506 @sed -e 's/VER_FILEDESCRIPTION_STR/"All-Platform P2P Client Based on eMule"/' \ 507 -e 's/VER_INTERNALNAME_STR/"amule"/' \ 508 -e 's/VER_ORIGINALFILENAME_STR/"amule$(EXEEXT)"/' "$<" > "$@" 509 510amuled-version.rc: $(top_builddir)/version.rc 511 @sed -e 's/VER_FILEDESCRIPTION_STR/"aMule Daemon"/' \ 512 -e 's/VER_INTERNALNAME_STR/"amuled"/' \ 513 -e 's/VER_ORIGINALFILENAME_STR/"amuled$(EXEEXT)"/' "$<" > "$@" 514 515amulecmd-version.rc: $(top_builddir)/version.rc 516 @sed -e 's/VER_FILEDESCRIPTION_STR/"aMule Text Client"/' \ 517 -e 's/VER_INTERNALNAME_STR/"amulecmd"/' \ 518 -e 's/VER_ORIGINALFILENAME_STR/"amulecmd$(EXEEXT)"/' "$<" > "$@" 519 520amulegui-version.rc: $(top_builddir)/version.rc 521 @sed -e 's/VER_FILEDESCRIPTION_STR/"aMule Remote GUI (Experimental)"/' \ 522 -e 's/VER_INTERNALNAME_STR/"amulegui"/' \ 523 -e 's/VER_ORIGINALFILENAME_STR/"amulegui$(EXEEXT)"/' "$<" > "$@" 524 525ed2k-version.rc: $(top_builddir)/version.rc 526 @sed -e 's/VER_FILEDESCRIPTION_STR/"ED2K Links Handler"/' \ 527 -e 's/VER_INTERNALNAME_STR/"ed2k"/' \ 528 -e 's/VER_ORIGINALFILENAME_STR/"ed2k$(EXEEXT)"/' "$<" > "$@" 529 530CLEANFILES = *-version.rc 531 532endif 533 534 535EXTRA__DIST__SUBDIRS = include kademlia 536include $(top_srcdir)/automake/dist-hook.am 537 538