1##
2# cxxfilt Makefile
3##
4
5# The --target is because bfd doesn't actually work on powerpc-darwin.
6# libiberty doesn't care about the target, but c++filt does, in one
7# very small way: it needs to know whether or not the target prepends an
8# underscore.  It turns out that this target does prepend an underscore.
9FAKE_TARGET=mn10300-elf
10
11# Project info
12Project               = cxxfilt
13UserType              = Developer
14ToolType              = Commands
15Install_Prefix	      = /usr/local
16Extra_Configure_Flags = --target=$(FAKE_TARGET) \
17			--without-target-subdir \
18			--disable-nls $(HOST_TARGET_FLAGS) --disable-werror
19Extra_CC_Flags        = -mdynamic-no-pic
20Extra_LD_Flags        = -lc++
21GnuAfterInstall       = post-install install-plist
22
23# It's a GNU Source project
24include ./GNUSource.make
25
26# Automatic Extract & Patch
27AEP            = YES
28AEP_Project    = binutils
29AEP_Version    = 070207
30AEP_ProjVers   = $(AEP_Project)-$(AEP_Version)
31AEP_Filename   = $(AEP_ProjVers).tar.bz2
32AEP_ExtractDir = $(AEP_ProjVers)
33AEP_Patches    = libiberty-demangle-5046344.patch libiberty-printf.patch stat64.patch demangle.patch cxa_demangle.patch
34
35ifeq ($(suffix $(AEP_Filename)),.bz2)
36AEP_ExtractOption = j
37else
38AEP_ExtractOption = z
39endif
40
41Install_Target = install
42
43# Extract the source.
44install_source::
45ifeq ($(AEP),YES)
46	$(TAR) -C $(SRCROOT) -$(AEP_ExtractOption)xf $(SRCROOT)/$(AEP_Filename)
47	$(RMDIR) $(SRCROOT)/$(Project)
48	$(MV) $(SRCROOT)/$(AEP_ExtractDir) $(SRCROOT)/$(Project)
49	$(RM) -r $(SRCROOT)/$(Project)/{gas,ld,gprof}
50	for patchfile in $(AEP_Patches); do \
51		cd $(SRCROOT)/$(Project) && patch -p0 < $(SRCROOT)/patches/$$patchfile; \
52	done
53endif
54
55post-install:
56	$(MKDIR) $(DSTROOT)/usr/bin
57	$(STRIP) $(DSTROOT)/usr/local/bin/$(FAKE_TARGET)-c++filt \
58		-o $(DSTROOT)/usr/bin/c++filt
59	$(MV) $(DSTROOT)/usr/share/man/man1/$(FAKE_TARGET)-c++filt.1 \
60		$(DSTROOT)/usr/share/man/man1/c++filt.1
61	$(RM) -r $(DSTROOT)/usr/share/info $(DSTROOT)/usr/local/bin
62	$(RM) -r $(DSTROOT)/usr/local/$(FAKE_TARGET)
63	$(RM) $(DSTROOT)/usr/share/man/man1/$(FAKE_TARGET)-*
64	$(RM) -r $(DSTROOT)/usr/local/include
65	$(RM) -r $(DSTROOT)/usr/local/lib
66
67OSV = $(DSTROOT)/usr/local/OpenSourceVersions
68OSL = $(DSTROOT)/usr/local/OpenSourceLicenses
69
70install-plist:
71	$(MKDIR) $(OSV)
72	$(INSTALL_FILE) $(SRCROOT)/$(Project).plist $(OSV)/$(Project).plist
73	$(MKDIR) $(OSL)
74	$(INSTALL_FILE) $(Sources)/COPYING $(OSL)/$(Project).txt
75