source: branches/ffigen-apple-gcc-6465/ffigen4/Makefile@ 57

Last change on this file since 57 was 57, checked in by gb, 16 years ago

better

File size: 2.2 KB
Line 
1# This is only intended to work on a Darwin host.
2# On the PPC (at least), it may only compile cleanly under Leopard.
3
4NOW = $(shell date -u "+%F-%H-%M-%S")
5
6GCC_VERSION = 5465
7ARCH = $(shell arch)
8ifeq ($(ARCH),i386)
9PLATFORM = intel
10else
11PLATFORM = $(ARCH)
12endif
13
14package: compile
15 mkdir -p ffigen/include ffigen/bin bin
16 cp -p build/gcc/xlimits.h ffigen/include/limits.h
17 cp -p gcc-$(GCC_VERSION)/gcc/ginclude/* ffigen/include
18 (cd build/gcc ; tar cf - include | tar xf - -C ../../ffigen)
19ifeq ($(ARCH),i386)
20# Need to copy header files which describe intrinsics for
21# vector/fpu hardware
22 cp -p gcc-$(GCC_VERSION)/gcc/config/i386/xmmintrin.h \
23 gcc-$(GCC_VERSION)/gcc/config/i386/tmmintrin.h \
24 gcc-$(GCC_VERSION)/gcc/config/i386/emmintrin.h \
25 gcc-$(GCC_VERSION)/gcc/config/i386/pmmintrin.h \
26 gcc-$(GCC_VERSION)/gcc/config/i386/pmm_malloc.h \
27 gcc-$(GCC_VERSION)/gcc/config/i386/gmm_malloc.h \
28 gcc-$(GCC_VERSION)/gcc/config/i386/mmintrin.h \
29 gcc-$(GCC_VERSION)/gcc/config/i386/mm3dnow.h \
30 ffigen/include
31 mv ffigen/include/gmm_malloc.h ffigen/include/mm_malloc.h
32endif
33 cp -p build/gcc/cc1obj ffigen/bin/ffigen
34 strip ffigen/bin/ffigen
35 cp source/h-to-ffi.sh bin
36 chmod +x bin/h-to-ffi.sh
37 tar cvfz ffigen-apple-gcc-$(GCC_VERSION)-$(PLATFORM)-$(NOW).tar.gz bin ffigen
38
39
40
41compile: patch
42 mkdir build
43 (cd build; ../gcc-$(GCC_VERSION)/configure --enable-languages=objc)
44 (cd build; ln -s . build-`../gcc-$(GCC_VERSION)/config.guess`)
45 (cd build ; $(MAKE) maybe-configure-libiberty maybe-configure-gcc maybe-configure-libcpp maybe-configure-fixincludes)
46 (cd build/libiberty ; $(MAKE))
47 (cd build/intl ; $(MAKE))
48 (cd build/libcpp ; $(MAKE))
49 mkdir gcc
50 (cd build/fixincludes ; $(MAKE))
51 (cd build/gcc ; $(MAKE) cc1obj stmp-fixinc xlimits.h)
52
53
54patch: extract
55 ln -sf `pwd`/source/ffi.c gcc-$(GCC_VERSION)/gcc
56 printf "char *ffi_version = \42%s\42;\n" "$(NOW)" > \
57 gcc-$(GCC_VERSION)/gcc/ffi-version.h
58 for f in source/gcc-$(GCC_VERSION)*.diff ; do \
59 (cd gcc-$(GCC_VERSION)/gcc; patch -p0 <../../$$f); \
60 done
61
62
63clean:
64 rm -rf gcc-$(GCC_VERSION) build bin gcc ffigen*
65
66
67extract: dist-gcc/gcc-$(GCC_VERSION).tar.gz clean
68 tar fxz dist-gcc/gcc-$(GCC_VERSION).tar.gz
69
70
Note: See TracBrowser for help on using the repository browser.