bsd.compat.mk (b2dcde7e9e75dd35124d12e68036e56ee650d568) | bsd.compat.mk (91d7edd549f52d09dbb12ecf5f0cf2298287f1c8) |
---|---|
1# $FreeBSD$ 2 3.if !targets(__<${_this:T}>__) 4__<${_this:T}>__: 5 | 1# $FreeBSD$ 2 3.if !targets(__<${_this:T}>__) 4__<${_this:T}>__: 5 |
6.if defined(_LIBCOMPAT) | 6_ALL_LIBCOMPATS:= 32 7 8.if defined(_LIBCOMPATS) |
7COMPAT_ARCH?= ${TARGET_ARCH} | 9COMPAT_ARCH?= ${TARGET_ARCH} |
8COMPAT_CPUTYPE?= ${CPUTYPE_${_LIBCOMPAT}} | 10.for _LIBCOMPAT in ${_ALL_LIBCOMPATS} 11LIB${_LIBCOMPAT}CPUTYPE?= ${CPUTYPE_${_LIBCOMPAT}} 12.endfor |
9.if (defined(WANT_COMPILER_TYPE) && ${WANT_COMPILER_TYPE} == gcc) || \ 10 (defined(X_COMPILER_TYPE) && ${X_COMPILER_TYPE} == gcc) 11COMPAT_COMPILER_TYPE= gcc 12.else 13COMPAT_COMPILER_TYPE= clang 14.endif 15.else 16COMPAT_ARCH= ${MACHINE_ARCH} | 13.if (defined(WANT_COMPILER_TYPE) && ${WANT_COMPILER_TYPE} == gcc) || \ 14 (defined(X_COMPILER_TYPE) && ${X_COMPILER_TYPE} == gcc) 15COMPAT_COMPILER_TYPE= gcc 16.else 17COMPAT_COMPILER_TYPE= clang 18.endif 19.else 20COMPAT_ARCH= ${MACHINE_ARCH} |
17COMPAT_CPUTYPE= ${CPUTYPE} | 21.for _LIBCOMPAT in ${_ALL_LIBCOMPATS} 22LIB${_LIBCOMPAT}CPUTYPE= ${CPUTYPE} 23.endfor |
18.include <bsd.compiler.mk> 19COMPAT_COMPILER_TYPE=${COMPILER_TYPE} 20.endif 21 22# ------------------------------------------------------------------- 23# 32 bit world 24.if ${COMPAT_ARCH} == "amd64" | 24.include <bsd.compiler.mk> 25COMPAT_COMPILER_TYPE=${COMPILER_TYPE} 26.endif 27 28# ------------------------------------------------------------------- 29# 32 bit world 30.if ${COMPAT_ARCH} == "amd64" |
25HAS_COMPAT=32 26.if empty(COMPAT_CPUTYPE) | 31HAS_COMPAT+= 32 32.if empty(LIB32CPUTYPE) |
27LIB32CPUFLAGS= -march=i686 -mmmx -msse -msse2 28.else | 33LIB32CPUFLAGS= -march=i686 -mmmx -msse -msse2 34.else |
29LIB32CPUFLAGS= -march=${COMPAT_CPUTYPE} | 35LIB32CPUFLAGS= -march=${LIB32CPUTYPE} |
30.endif 31.if ${COMPAT_COMPILER_TYPE} == gcc 32.else 33LIB32CPUFLAGS+= -target x86_64-unknown-freebsd${OS_REVISION} 34.endif 35LIB32CPUFLAGS+= -m32 36LIB32_MACHINE= i386 37LIB32_MACHINE_ARCH= i386 38LIB32WMAKEENV= MACHINE_CPU="i686 mmx sse sse2" 39LIB32WMAKEFLAGS= \ 40 LD="${XLD} -m elf_i386_fbsd" 41 42.elif ${COMPAT_ARCH} == "powerpc64" | 36.endif 37.if ${COMPAT_COMPILER_TYPE} == gcc 38.else 39LIB32CPUFLAGS+= -target x86_64-unknown-freebsd${OS_REVISION} 40.endif 41LIB32CPUFLAGS+= -m32 42LIB32_MACHINE= i386 43LIB32_MACHINE_ARCH= i386 44LIB32WMAKEENV= MACHINE_CPU="i686 mmx sse sse2" 45LIB32WMAKEFLAGS= \ 46 LD="${XLD} -m elf_i386_fbsd" 47 48.elif ${COMPAT_ARCH} == "powerpc64" |
43HAS_COMPAT=32 44.if empty(COMPAT_CPUTYPE) | 49HAS_COMPAT+= 32 50.if empty(LIB32CPUTYPE) |
45LIB32CPUFLAGS= -mcpu=powerpc 46.else | 51LIB32CPUFLAGS= -mcpu=powerpc 52.else |
47LIB32CPUFLAGS= -mcpu=${COMPAT_CPUTYPE} | 53LIB32CPUFLAGS= -mcpu=${LIB32CPUTYPE} |
48.endif 49 50.if ${COMPAT_COMPILER_TYPE} == "gcc" 51LIB32CPUFLAGS+= -m32 52.else 53LIB32CPUFLAGS+= -target powerpc-unknown-freebsd${OS_REVISION} 54.endif 55 --- 28 unchanged lines hidden (view full) --- 84.ifdef WANT_COMPAT 85.error Both WANT_COMPAT and NEED_COMPAT defined 86.endif 87WANT_COMPAT:= ${NEED_COMPAT} 88.endif 89 90.if defined(HAS_COMPAT) && defined(WANT_COMPAT) 91.if ${WANT_COMPAT} == "any" | 54.endif 55 56.if ${COMPAT_COMPILER_TYPE} == "gcc" 57LIB32CPUFLAGS+= -m32 58.else 59LIB32CPUFLAGS+= -target powerpc-unknown-freebsd${OS_REVISION} 60.endif 61 --- 28 unchanged lines hidden (view full) --- 90.ifdef WANT_COMPAT 91.error Both WANT_COMPAT and NEED_COMPAT defined 92.endif 93WANT_COMPAT:= ${NEED_COMPAT} 94.endif 95 96.if defined(HAS_COMPAT) && defined(WANT_COMPAT) 97.if ${WANT_COMPAT} == "any" |
92_LIBCOMPAT:= ${HAS_COMPAT:[1]} | 98USE_COMPAT:= ${HAS_COMPAT:[1]} |
93.else | 99.else |
94_LIBCOMPAT:= ${WANT_COMPAT} | 100USE_COMPAT:= ${WANT_COMPAT} |
95.endif | 101.endif |
102 103_LIBCOMPATS= ${USE_COMPAT} |
|
96.endif 97 | 104.endif 105 |
106libcompats= ${_LIBCOMPATS:tl} 107 |
|
98# ------------------------------------------------------------------- 99# Generic code for each type. 100# Set defaults based on type. | 108# ------------------------------------------------------------------- 109# Generic code for each type. 110# Set defaults based on type. |
101libcompat= ${_LIBCOMPAT:tl} 102_LIBCOMPAT_MAKEVARS= _OBJTOP TMP CPUFLAGS CFLAGS CXXFLAGS LDFLAGS \ 103 _MACHINE _MACHINE_ARCH _MACHINE_ABI \ 104 WMAKEENV WMAKEFLAGS WMAKE WORLDTMP 105.for _var in ${_LIBCOMPAT_MAKEVARS} 106.if !empty(LIB${_LIBCOMPAT}${_var}) 107LIBCOMPAT${_var}?= ${LIB${_LIBCOMPAT}${_var}} 108.endif 109.endfor 110 | 111.for _LIBCOMPAT _libcompat in ${_LIBCOMPATS:@v@${v} ${v:tl}@} |
111WORLDTMP?= ${SYSROOT} 112 113# Shared flags | 112WORLDTMP?= ${SYSROOT} 113 114# Shared flags |
114LIBCOMPAT_OBJTOP?= ${OBJTOP}/obj-lib${libcompat} | 115LIB${_LIBCOMPAT}_OBJTOP?= ${OBJTOP}/obj-lib${_libcompat} |
115 | 116 |
116LIBCOMPATCFLAGS+= ${LIBCOMPATCPUFLAGS} \ | 117LIB${_LIBCOMPAT}CFLAGS+= ${LIB${_LIBCOMPAT}CPUFLAGS} \ |
117 --sysroot=${WORLDTMP} \ 118 ${BFLAGS} 119 | 118 --sysroot=${WORLDTMP} \ 119 ${BFLAGS} 120 |
120LIBCOMPATLDFLAGS+= -L${WORLDTMP}/usr/lib${libcompat} | 121LIB${_LIBCOMPAT}LDFLAGS+= -L${WORLDTMP}/usr/lib${_libcompat} |
121 | 122 |
122LIBCOMPATWMAKEENV+= MACHINE=${LIBCOMPAT_MACHINE} 123LIBCOMPATWMAKEENV+= MACHINE_ARCH=${LIBCOMPAT_MACHINE_ARCH} | 123LIB${_LIBCOMPAT}WMAKEENV+= MACHINE=${LIB${_LIBCOMPAT}_MACHINE} 124LIB${_LIBCOMPAT}WMAKEENV+= MACHINE_ARCH=${LIB${_LIBCOMPAT}_MACHINE_ARCH} |
124 125# -B is needed to find /usr/lib32/crti.o for gcc. | 125 126# -B is needed to find /usr/lib32/crti.o for gcc. |
126LIBCOMPATCFLAGS+= -B${WORLDTMP}/usr/lib${libcompat} | 127LIB${_LIBCOMPAT}CFLAGS+= -B${WORLDTMP}/usr/lib${_libcompat} 128.endfor |
127 | 129 |
128.if defined(WANT_COMPAT) | 130.if defined(USE_COMPAT) 131libcompat= ${USE_COMPAT:tl} 132 133_LIBCOMPAT_MAKEVARS= _OBJTOP TMP CPUFLAGS CFLAGS CXXFLAGS LDFLAGS \ 134 _MACHINE _MACHINE_ARCH _MACHINE_ABI \ 135 WMAKEENV WMAKEFLAGS WMAKE WORLDTMP 136.for _var in ${_LIBCOMPAT_MAKEVARS} 137.if !empty(LIB${USE_COMPAT}${_var}) 138LIBCOMPAT${_var}?= ${LIB${USE_COMPAT}${_var}} 139.endif 140.endfor 141 |
129LIBDIR_BASE:= /usr/lib${libcompat} 130LIBDATADIR:= /usr/lib${libcompat} 131_LIB_OBJTOP= ${LIBCOMPAT_OBJTOP} 132CFLAGS+= ${LIBCOMPATCFLAGS} 133LDFLAGS+= ${CFLAGS} ${LIBCOMPATLDFLAGS} 134MACHINE= ${LIBCOMPAT_MACHINE} 135MACHINE_ARCH= ${LIBCOMPAT_MACHINE_ARCH} 136.endif 137 138.endif | 142LIBDIR_BASE:= /usr/lib${libcompat} 143LIBDATADIR:= /usr/lib${libcompat} 144_LIB_OBJTOP= ${LIBCOMPAT_OBJTOP} 145CFLAGS+= ${LIBCOMPATCFLAGS} 146LDFLAGS+= ${CFLAGS} ${LIBCOMPATLDFLAGS} 147MACHINE= ${LIBCOMPAT_MACHINE} 148MACHINE_ARCH= ${LIBCOMPAT_MACHINE_ARCH} 149.endif 150 151.endif |