Makefile revision 294576
1112125Ssam# $FreeBSD: head/gnu/lib/libgcc/Makefile 294576 2016-01-22 16:47:36Z emaste $ 2112125Ssam 3139749SimpGCCDIR= ${.CURDIR}/../../../contrib/gcc 4112125SsamGCCLIB= ${.CURDIR}/../../../contrib/gcclibs 5112125SsamCOMPILERRTDIR= ${.CURDIR}/../../../contrib/compiler-rt 6112125SsamUNWINDINCDIR= ${.CURDIR}/../../../contrib/llvm/projects/libunwind/include 7112125SsamUNWINDSRCDIR= ${.CURDIR}/../../../contrib/llvm/projects/libunwind/src 8112125Ssam 9112125SsamSHLIB_NAME= libgcc_s.so.1 10112125SsamSHLIBDIR?= /lib 11112125Ssam 12112125Ssam.include <src.opts.mk> 13112125Ssam# 14112125Ssam# libgcc is linked in last and thus cannot depend on ssp symbols coming 15112125Ssam# from earlier libraries. Disable stack protection for this library. 16112125Ssam# 17112125SsamMK_SSP= no 18112125Ssam 19112125Ssam.include "${.CURDIR}/../../usr.bin/cc/Makefile.tgt" 20112125Ssam 21112125Ssam.if ${TARGET_CPUARCH} == "arm" 22112125SsamCFLAGS+= -DTARGET_ARM_EABI 23112125Ssam.endif 24112125Ssam 25112125Ssam.PATH: ${GCCDIR}/config/${GCC_CPU} ${GCCDIR}/config ${GCCDIR} 26112125Ssam 27112125SsamCFLAGS+= -DIN_GCC -DIN_LIBGCC2 -D__GCC_FLOAT_NOT_NEEDED \ 28112125Ssam -DHAVE_GTHR_DEFAULT \ 29112125Ssam -I${GCCLIB}/include \ 30112125Ssam -I${GCCDIR}/config -I${GCCDIR} -I. \ 31112125Ssam -I${.CURDIR}/../../usr.bin/cc/cc_tools 32112125Ssam 33112125SsamLDFLAGS+= -nodefaultlibs 34119418SobrienLIBADD+= c 35119418Sobrien 36119418SobrienOBJS= # added to below in various ways depending on TARGET_CPUARCH 37112125Ssam 38112125Ssam#--------------------------------------------------------------------------- 39112125Ssam# 40112125Ssam# Library members defined in libgcc2.c. 41112125Ssam# When upgrading GCC, obtain the following list from mklibgcc.in 42112125Ssam# 43112125SsamLIB2FUNCS= _muldi3 _negdi2 _lshrdi3 _ashldi3 _ashrdi3 \ 44112125Ssam _cmpdi2 _ucmpdi2 \ 45112125Ssam _enable_execute_stack _trampoline __main _absvsi2 _absvdi2 _addvsi3 \ 46112125Ssam _addvdi3 _subvsi3 _subvdi3 _mulvsi3 _mulvdi3 _negvsi2 _negvdi2 _ctors \ 47112125Ssam _ffssi2 _ffsdi2 _clz _clzsi2 _clzdi2 _ctzsi2 _ctzdi2 _popcount_tab \ 48112125Ssam _popcountsi2 _popcountdi2 _paritysi2 _paritydi2 _powisf2 _powidf2 \ 49112125Ssam _powixf2 _powitf2 _mulsc3 _muldc3 _mulxc3 _multc3 _divsc3 _divdc3 \ 50112125Ssam _divxc3 _divtc3 _bswapsi2 _bswapdi2 51112125Ssam.if ${COMPILER_TYPE} != "clang" || ${TARGET_CPUARCH} != "arm" 52112125SsamLIB2FUNCS+= _clear_cache 53112125Ssam.endif 54112125Ssam 55112125Ssam# The floating-point conversion routines that involve a single-word integer. 56112125Ssam.for mode in sf df xf 57112125SsamLIB2FUNCS+= _fixuns${mode}si 58112125Ssam.endfor 59112125Ssam 60112125Ssam# Likewise double-word routines. 61112125Ssam.if ${TARGET_CPUARCH} != "aarch64" && ${TARGET_CPUARCH} != "arm" 62112125Ssam# These are implemented in an ARM specific file but will not be filtered out 63112125Ssam.for mode in sf df xf tf 64112125SsamLIB2FUNCS+= _fix${mode}di _fixuns${mode}di 65112125SsamLIB2FUNCS+= _floatdi${mode} _floatundi${mode} 66112125Ssam.endfor 67112125Ssam.endif 68112125Ssam 69112125SsamLIB2ADD = $(LIB2FUNCS_EXTRA) 70112125SsamLIB2ADD_ST = $(LIB2FUNCS_STATIC_EXTRA) 71112125Ssam 72112125Ssam# Additional sources to handle exceptions; overridden by targets as needed. 73227309Sed.if ${MK_LLVM_LIBUNWIND} != "no" 74227309Sed 75112125Ssam.PATH: ${COMPILERRTDIR}/lib/builtins 76116815Ssam.PATH: ${UNWINDSRCDIR} 77112125SsamLIB2ADDEH = gcc_personality_v0.c \ 78112125Ssam int_util.c \ 79112125Ssam Unwind-EHABI.cpp \ 80112125Ssam Unwind-sjlj.c \ 81112125Ssam UnwindLevel1-gcc-ext.c \ 82112125Ssam UnwindLevel1.c \ 83112125Ssam UnwindRegistersRestore.S \ 84112125Ssam UnwindRegistersSave.S 85112125Ssam 86112125SsamCFLAGS+= -I${UNWINDINCDIR} -I${.CURDIR} 87112125Ssam.if empty(CXXFLAGS:M-std=*) 88112125SsamCXXFLAGS+= -std=c++11 89112125Ssam.endif 90112125SsamCXXFLAGS+= -fno-rtti 91112125SsamSTATIC_CXXFLAGS+= -fvisibility=hidden -fPIC 92112125Ssam 93112125Ssam.else # MK_LLVM_LIBUNWIND 94112125Ssam 95112125Ssam.if ${TARGET_CPUARCH} == "arm" 96112125SsamLIB2ADDEH = unwind-arm.c libunwind.S pr-support.c unwind-c.c 97112125Ssam.else 98116815SsamLIB2ADDEH = unwind-dw2.c unwind-dw2-fde-glibc.c unwind-sjlj.c gthr-gnat.c \ 99116815Ssam unwind-c.c 100116815Ssam.endif 101119137Ssam 102116815Ssam.endif # MK_LLVM_LIBUNWIND 103112125Ssam 104112125SsamLIB2ADDEHSTATIC = $(LIB2ADDEH) 105112125SsamLIB2ADDEHSHARED = $(LIB2ADDEH) 106112125Ssam 107112125Ssam# List of extra C and assembler files to add to static and shared libgcc2. 108112125Ssam# Assembler files should have names ending in `.asm'. 109112125SsamLIB2FUNCS_EXTRA = 110112125Ssam 111112125Ssam# List of extra C and assembler files to add to static libgcc2. 112112125Ssam# Assembler files should have names ending in `.asm'. 113112125SsamLIB2FUNCS_STATIC_EXTRA = 114112125Ssam 115112125Ssam# Defined in libgcc2.c, included only in the static library. 116112125Ssam# KAN: Excluded _sf_to_tf and _df_to_tf as TPBIT_FUNCS are not 117112125Ssam# built on any of our platforms. 118116815SsamLIB2FUNCS_ST = _eprintf __gcc_bcmp 119112125Ssam 120112125SsamFPBIT_FUNCS = _pack_sf _unpack_sf _addsub_sf _mul_sf _div_sf \ 121112125Ssam _fpcmp_parts_sf _compare_sf _eq_sf _ne_sf _gt_sf _ge_sf \ 122112125Ssam _lt_sf _le_sf _unord_sf _si_to_sf _sf_to_si _negate_sf _make_sf \ 123112125Ssam _sf_to_df _thenan_sf _sf_to_usi _usi_to_sf 124112125Ssam 125112125SsamDPBIT_FUNCS = _pack_df _unpack_df _addsub_df _mul_df _div_df \ 126112125Ssam _fpcmp_parts_df _compare_df _eq_df _ne_df _gt_df _ge_df \ 127112125Ssam _lt_df _le_df _unord_df _si_to_df _df_to_si _negate_df _make_df \ 128112125Ssam _df_to_sf _thenan_df _df_to_usi _usi_to_df 129112125Ssam 130112125SsamTPBIT_FUNCS = _pack_tf _unpack_tf _addsub_tf _mul_tf _div_tf \ 131112125Ssam _fpcmp_parts_tf _compare_tf _eq_tf _ne_tf _gt_tf _ge_tf \ 132112125Ssam _lt_tf _le_tf _unord_tf _si_to_tf _tf_to_si _negate_tf _make_tf \ 133112125Ssam _tf_to_df _tf_to_sf _thenan_tf _tf_to_usi _usi_to_tf 134112125Ssam 135112125Ssam# These might cause a divide overflow trap and so are compiled with 136112125Ssam# unwinder info. 137112125SsamLIB2_DIVMOD_FUNCS = _divdi3 _moddi3 _udivdi3 _umoddi3 _udiv_w_sdiv _udivmoddi4 138112125Ssam 139112125Ssam#----------------------------------------------------------------------- 140112125Ssam# 141112125Ssam# Platform specific bits. 142112125Ssam# When upgrading GCC, get the following definitions from config/<cpu>/t-* 143112125Ssam# 144112125Ssam.if ${TARGET_CPUARCH} == "arm" 145112125Ssam# from config/arm/t-strongarm-elf 146112125SsamCFLAGS+= -Dinhibit_libc -fno-inline 147112125SsamCFLAGS.clang+= -fheinous-gnu-extensions 148116815Ssam 149116815SsamLIB1ASMSRC = lib1funcs.asm 150116815SsamLIB1ASMFUNCS = _dvmd_tls _bb_init_func 151116815Ssam# Some compilers generate __aeabi_ functions libgcc_s is missing 152116815SsamLIBADD+= compiler_rt 153116815Ssam.endif 154116815Ssam 155256381Smarkm.if ${TARGET_CPUARCH} == mips 156116815SsamLIB2FUNCS_EXTRA = floatunsidf.c floatunsisf.c 157116815Ssam# ABIs other than o32 need this 158112125Ssam.if ${TARGET_ARCH} != "mips" && ${TARGET_ARCH} != "mipsel" 159112125SsamLIB2FUNCS_EXTRA+= floatdidf.c fixunsdfsi.c 160112125SsamLIB2FUNCS_EXTRA+= floatdisf.c floatundidf.c 161112125SsamLIB2FUNCS_EXTRA+= fixsfdi.c floatundisf.c 162112125SsamLIB2FUNCS_EXTRA+= fixdfdi.c fixunssfsi.c 163112125Ssam.endif 164112125Ssam.endif 165112125Ssam 166112125Ssam.if ${TARGET_ARCH} == "powerpc" 167112125Ssam# from config/rs6000/t-ppccomm 168112125SsamLIB2FUNCS_EXTRA = tramp.asm 169112125SsamLIB2FUNCS_STATIC_EXTRA = eabi.asm 170112125Ssam.endif 171112125Ssam 172112125Ssam.if ${TARGET_ARCH} == "powerpc64" 173112125Ssam# from config/rs6000/t-ppccomm 174112125SsamLIB2FUNCS_EXTRA = tramp.asm 175112125Ssam.endif 176112125Ssam 177112125Ssam.if ${TARGET_CPUARCH} == "sparc64" 178112125Ssam# from config/sparc/t-elf 179112125SsamLIB1ASMSRC = lb1spc.asm 180112125SsamLIB1ASMFUNCS = _mulsi3 _divsi3 _modsi3 181112125Ssam.endif 182112125Ssam 183112125Ssam#----------------------------------------------------------------------- 184112125Ssam 185112125Ssam# Remove any objects from LIB2FUNCS and LIB2_DIVMOD_FUNCS that are 186112125Ssam# defined as optimized assembly code in LIB1ASMFUNCS. 187112125Ssam.if defined(LIB1ASMFUNCS) 188112125Ssam.for sym in ${LIB1ASMFUNCS} 189112125SsamLIB2FUNCS:= ${LIB2FUNCS:S/${sym}//g} 190112125SsamLIB2_DIVMOD_FUNCS:= ${LIB2_DIVMOD_FUNCS:S/${sym}//g} 191112125Ssam.endfor 192112125Ssam.endif 193112125Ssam 194112125SsamCOMMONHDRS= tm.h tconfig.h options.h gthr-default.h 195112125Ssam.if ${MK_LLVM_LIBUNWIND} != "no" 196112125Ssam# unwind.h is a generated file when MK_LLVM_LIBUNWIND == "no", and a stale 197112125Ssam# copy may be left behind in OBJDIR when switching, so remove it explicitly. 198112125Ssambeforebuild: 199112125Ssam @rm -f ${.OBJDIR}/unwind.h 200112125Ssam.else 201112125SsamCOMMONHDRS+= unwind.h 202112125Ssam.endif 203112125Ssam 204112125Ssam#----------------------------------------------------------------------- 205112125Ssam# 206112125Ssam# Helpful shortcuts for compiler invocations. 207112125Ssam# 208112125SsamHIDE = -fvisibility=hidden -DHIDE_EXPORTS 209112125SsamCC_T = ${CC} -c ${CFLAGS} ${HIDE} -fPIC 210112125SsamCC_P = ${CC} -c ${CFLAGS} ${HIDE} -p -fPIC 211112125SsamCC_S = ${CC} -c ${CFLAGS} ${PICFLAG} -DSHARED 212112125Ssam 213112125Ssam#----------------------------------------------------------------------- 214112125Ssam# 215112125Ssam# Functions from libgcc2.c 216112125Ssam# 217112125SsamSTD_CFLAGS = 218112125SsamDIV_CFLAGS = -fexceptions -fnon-call-exceptions 219112125Ssam 220112125SsamSTD_FUNCS = ${LIB2FUNCS} 221112125SsamDIV_FUNCS = ${LIB2_DIVMOD_FUNCS} 222112125Ssam 223112125SsamSTD_CFILE = libgcc2.c 224112125SsamDIV_CFILE = libgcc2.c 225112125Ssam 226112125SsamOBJ_GRPS = STD DIV 227112125Ssam 228112125Ssam#----------------------------------------------------------------------- 229112125Ssam# 230112125Ssam# Floating point emulation functions 231112125Ssam# 232112125Ssam.if ${TARGET_CPUARCH} == "armNOT_YET" || \ 233112125Ssam ${TARGET_CPUARCH} == "powerpc" || ${TARGET_CPUARCH} == "sparc64" 234112125Ssam 235112125SsamFPBIT_CFLAGS = -DFINE_GRAINED_LIBRARIES -DFLOAT 236112125SsamDPBIT_CFLAGS = -DFINE_GRAINED_LIBRARIES 237112125Ssam 238112125SsamFPBIT_CFILE = config/fp-bit.c 239112125SsamDPBIT_CFILE = config/fp-bit.c 240112125Ssam 241112125SsamOBJ_GRPS += FPBIT DPBIT 242112125Ssam.endif 243112125Ssam 244112125Ssam#----------------------------------------------------------------------- 245112125Ssam# 246112125Ssam# Generic build rules for object groups defined above 247112125Ssam# 248112125Ssam.for T in ${OBJ_GRPS} 249112125Ssam${T}_OBJS_T = ${${T}_FUNCS:S/$/.o/} 250112125Ssam${T}_OBJS_P = ${${T}_FUNCS:S/$/.po/} 251112125Ssam${T}_OBJS_S = ${${T}_FUNCS:S/$/.So/} 252112125SsamOBJS += ${${T}_FUNCS:S/$/.o/} 253112125Ssam 254112125Ssam${${T}_OBJS_T}: ${${T}_CFILE} ${COMMONHDRS} 255112125Ssam ${CC_T} ${${T}_CFLAGS} -DL${.PREFIX} -o ${.TARGET} ${.ALLSRC:M*.c} 256112125Ssam${${T}_OBJS_P}: ${${T}_CFILE} ${COMMONHDRS} 257112125Ssam ${CC_P} ${${T}_CFLAGS} -DL${.PREFIX} -o ${.TARGET} ${.ALLSRC:M*.c} 258112125Ssam${${T}_OBJS_S}: ${${T}_CFILE} ${COMMONHDRS} 259112125Ssam ${CC_S} ${${T}_CFLAGS} -DL${.PREFIX} -o ${.TARGET} ${.ALLSRC:M*.c} 260112125Ssam.endfor 261112125Ssam 262112125Ssam#----------------------------------------------------------------------- 263112125Ssam# 264112125Ssam# Extra objects coming from separate files 265112125Ssam# 266112125Ssam.if !empty(LIB2ADD) 267112125SsamOBJS += ${LIB2ADD:R:S/$/.o/} 268112125SsamSOBJS += ${LIB2ADD:R:S/$/.So/} 269112125SsamPOBJS += ${LIB2ADD:R:S/$/.po/} 270112125Ssam.endif 271112125Ssam 272112125Ssam#----------------------------------------------------------------------- 273112125Ssam# 274112125Ssam# Objects that should be in static library only. 275112125Ssam# 276112125SsamSYMS_ST = ${LIB2FUNCS_ST} ${LIB2ADD_ST} 277112125SsamSTAT_OBJS_T = ${SYMS_ST:S/$/.o/} 278112125SsamSTAT_OBJS_P = ${SYMS_ST:S/$/.po/} 279112125SsamSTATICOBJS = ${SYMS_ST:S/$/.o/} 280112125Ssam 281112125Ssam${STAT_OBJS_T}: ${STD_CFILE} ${COMMONHDRS} 282112125Ssam ${CC_T} -DL${.PREFIX} -o ${.TARGET} ${.ALLSRC:M*.c} 283112125Ssam${STAT_OBJS_P}: ${STD_CFILE} ${COMMONHDRS} 284112125Ssam ${CC_P} -DL${.PREFIX} -o ${.TARGET} ${.ALLSRC:M*.c} 285112125Ssam 286112125Ssam#----------------------------------------------------------------------- 287112125Ssam# 288112125Ssam# Assembler files. 289112125Ssam# 290112125Ssam.if defined(LIB1ASMSRC) 291112125SsamASM_T = ${LIB1ASMFUNCS:S/$/.o/} 292112125SsamASM_P = ${LIB1ASMFUNCS:S/$/.po/} 293112125SsamASM_S = ${LIB1ASMFUNCS:S/$/.So/} 294112125SsamASM_V = ${LIB1ASMFUNCS:S/$/.vis/} 295112125SsamOBJS += ${LIB1ASMFUNCS:S/$/.o/} 296112125Ssam 297112125Ssam${ASM_T}: ${LIB1ASMSRC} ${.PREFIX}.vis 298112125Ssam ${CC} -x assembler-with-cpp -c ${CFLAGS} -DL${.PREFIX} \ 299112125Ssam -o ${.TARGET} -include ${.PREFIX}.vis ${.ALLSRC:N*.h:N*.vis} 300112125Ssam${ASM_P}: ${LIB1ASMSRC} ${.PREFIX}.vis 301112125Ssam ${CC} -x assembler-with-cpp -p -c ${CFLAGS} -DL${.PREFIX} \ 302112125Ssam -o ${.TARGET} -include ${.PREFIX}.vis ${.ALLSRC:N*.h:N*.vis} 303112125Ssam${ASM_S}: ${LIB1ASMSRC} 304112125Ssam ${CC} -x assembler-with-cpp -c ${PICFLAG} ${CFLAGS} -DL${.PREFIX} \ 305112125Ssam -o ${.TARGET} ${.ALLSRC:N*.h} 306112125Ssam${ASM_V}: ${LIB1ASMSRC} 307112125Ssam ${CC} -x assembler-with-cpp -c ${CFLAGS} -DL${.PREFIX} \ 308112125Ssam -o ${.PREFIX}.vo ${.ALLSRC:N*.h} 309112125Ssam ( ${NM} -pg ${.PREFIX}.vo | \ 310112125Ssam awk 'NF == 3 && $$2 !~ /^[UN]$$/ { print "\t.hidden ", $$3 }'\ 311112125Ssam ) > ${.TARGET} 312112125Ssam 313112125SsamCLEANFILES += ${ASM_V} ${ASM_V:R:S/$/.vo/} 314112125Ssam.endif 315112125Ssam 316112125Ssam#----------------------------------------------------------------------- 317112125Ssam# 318112125Ssam# Exception handling / unwinding support. 319112125Ssam# 320112125SsamEH_OBJS_T = ${LIB2ADDEHSTATIC:R:S/$/.o/} 321112125SsamEH_OBJS_P = ${LIB2ADDEHSTATIC:R:S/$/.po/} 322112125SsamEH_OBJS_S = ${LIB2ADDEHSHARED:R:S/$/.So/} 323112125SsamEH_CFLAGS = -fexceptions -D__GLIBC__=3 -DElfW=__ElfN 324112125SsamSOBJS += ${EH_OBJS_S} 325112125Ssam 326112125Ssam.for _src in ${LIB2ADDEHSTATIC:M*.c} 327112125Ssam${_src:R:S/$/.o/}: ${_src} ${COMMONHDRS} 328112125Ssam ${CC_T} ${EH_CFLAGS} -o ${.TARGET} ${.IMPSRC} 329112125Ssam${_src:R:S/$/.po/}: ${_src} ${COMMONHDRS} 330112125Ssam ${CC_P} ${EH_CFLAGS} -o ${.TARGET} ${.IMPSRC} 331112125Ssam.endfor 332112125Ssam.for _src in ${LIB2ADDEHSHARED:M*.c} 333112125Ssam${_src:R:S/$/.So/}: ${_src} ${COMMONHDRS} 334112125Ssam ${CC_S} ${EH_CFLAGS} -o ${.TARGET} ${.IMPSRC} 335112125Ssam.endfor 336112125Ssam 337112125Ssam 338112125Ssam#----------------------------------------------------------------------- 339112125Ssam# 340112125Ssam# Generated headers 341112125Ssam# 342112125Ssam${COMMONHDRS}: ${.CURDIR}/../../usr.bin/cc/cc_tools/Makefile 343112125Ssam (cd ${.CURDIR}; ${MAKE} -f ${.ALLSRC} MFILE=${.ALLSRC} GCCDIR=${GCCDIR} ${.TARGET}) 344112125Ssam 345112125SsamCLEANFILES += ${COMMONHDRS} 346112125SsamCLEANFILES += cs-*.h option* 347112125Ssam 348112125Ssam#----------------------------------------------------------------------- 349112125Ssam# 350112125Ssam# Build symbol version map 351112125Ssam# 352112125SsamSHLIB_MKMAP = ${GCCDIR}/mkmap-symver.awk 353112125SsamSHLIB_MKMAP_OPTS = 354112125SsamSHLIB_MAPFILES = ${GCCDIR}/libgcc-std.ver 355112125Ssam.if ${TARGET_CPUARCH} == "arm" 356112125SsamSHLIB_MAPFILES += ${GCCDIR}/config/arm/libgcc-bpabi.ver 357112125Ssam.endif 358112125SsamVERSION_MAP = libgcc.map 359112125Ssam 360112125Ssamlibgcc.map: ${SHLIB_MKMAP} ${SHLIB_MAPFILES} ${SOBJS} ${OBJS:R:S/$/.So/} 361112125Ssam ( ${NM} -pg ${SOBJS};echo %% ; \ 362112125Ssam cat ${SHLIB_MAPFILES} \ 363249582Sgabor | sed -e '/^[ ]*#/d' \ 364112125Ssam -e 's/^%\(if\|else\|elif\|endif\|define\)/#\1/' \ 365112125Ssam | ${CC} ${CFLAGS} -E -xassembler-with-cpp -; \ 366112125Ssam ) | awk -f ${SHLIB_MKMAP} ${SHLIB_MKMAP_OPTS} > ${.TARGET} 367112125Ssam 368112125SsamCLEANFILES += libgcc.map 369112125Ssam 370112125Ssam#----------------------------------------------------------------------- 371112125Ssam# 372112125Ssam# Build additional static libgcc_eh[_p].a libraries. 373112125Ssam# 374112125Ssamlibgcc_eh.a: ${EH_OBJS_T} 375112125Ssam @${ECHO} building static gcc_eh library 376112125Ssam @rm -f ${.TARGET} 377112125Ssam @${AR} ${ARFLAGS} ${.TARGET} `lorder ${EH_OBJS_T} | tsort -q` 378112125Ssam ${RANLIB} ${RANLIBFLAGS} ${.TARGET} 379112125Ssam 380112125Ssam_LIBS+= libgcc_eh.a 381112125Ssam 382112125Ssam.if ${MK_PROFILE} != "no" 383112125Ssamlibgcc_eh_p.a: ${EH_OBJS_P} 384112125Ssam @${ECHO} building profiled gcc_eh library 385112125Ssam @rm -f ${.TARGET} 386112125Ssam @${AR} ${ARFLAGS} ${.TARGET} `lorder ${EH_OBJS_P} | tsort -q` 387112125Ssam ${RANLIB} ${RANLIBFLAGS} ${.TARGET} 388112125Ssam 389112125Ssam_LIBS+= libgcc_eh_p.a 390112125Ssam.endif 391112125Ssam 392112125Ssam_libinstall: _lib-eh-install 393112125Ssam 394112125Ssam_lib-eh-install: 395112125Ssam.if ${MK_INSTALLLIB} != "no" 396112125Ssam ${INSTALL} -C -o ${LIBOWN} -g ${LIBGRP} -m ${LIBMODE} \ 397112125Ssam ${_INSTALLFLAGS} libgcc_eh.a ${DESTDIR}${LIBDIR} 398112125Ssam.endif 399112125Ssam.if ${MK_PROFILE} != "no" 400112125Ssam ${INSTALL} -C -o ${LIBOWN} -g ${LIBGRP} -m ${LIBMODE} \ 401112125Ssam ${_INSTALLFLAGS} libgcc_eh_p.a ${DESTDIR}${LIBDIR} 402112125Ssam.endif 403112125Ssam 404112125SsamCLEANFILES+= libgcc_eh.a libgcc_eh_p.a ${EH_OBJS_T} ${EH_OBJS_P} 405241394Skevlo 406112125Ssam.include <bsd.lib.mk> 407112125Ssam 408112125Ssam.SUFFIXES: .vis .vo 409