Make.lib (1372B)
1 # 2 # This license is set out in https://raw.githubusercontent.com/Broadcom-Network-Switching-Software/OpenBCM/master/Legal/LICENSE file. 3 # 4 # Copyright 2007-2019 Broadcom Inc. All rights reserved. 5 # 6 # Make rules/targets for handling libraries 7 8 .SECONDARY:: ${BOBJS} 9 10 BOBJS_FAST = ${BOBJS} 11 BOBJS_MAKE_CMD = 12 13 ifeq ($(FAST),1) 14 ifneq ($(strip $(BOBJS)),) 15 BOBJS_FAST = 16 BOBJS_ARGS = -j9 17 BOBJS_MAKE_CMD = pwd && make LSRUN=$(SDK)/tools/lsrun.pl $(BOBJS_ARGS) ${BOBJS} 18 endif 19 endif 20 21 ifeq ($(TOOLS),Borland) 22 23 LIBSUFFIX=lib 24 25 ${LIBDIR}/%.lib: ${BORLAND_BOBJS} 26 $(RM) $@ 27 $(FOREACH) -subdir "$(LIBDIR)" \ 28 "tlib $@ $(foreach obj, $(BORLAND_LOBJS), +-$(obj))" 29 30 else # !Borland 31 32 ifeq ($(LINUX_MAKE_SHARED_LIB),1) 33 LIBSUFFIX=so.${SHAREDLIBVER} 34 else 35 LIBSUFFIX=a 36 endif 37 38 targetlib = ${LIBDIR}/${lib}.${LIBSUFFIX} 39 40 all:: ${BLDDIR}/.tree ${targetlib} 41 42 ${LIBDIR}/%.${LIBSUFFIX}: ${BOBJS_FAST} 43 $(BOBJS_MAKE_CMD) 44 ifdef QUIET 45 @$(ECHO) Building library $(notdir $@) 46 endif 47 $Q$(RM) $@ 48 ifeq ($(LINUX_MAKE_SHARED_LIB),1) 49 $(CC) -shared -Wl,-soname,${lib}.${LIBSUFFIX}${EXTRA_LIB_LDFLAGS} -o ${targetlib} ${BOBJS} -lc 50 else 51 ${Q}cd $(dir $(word 1,${BOBJS}));$(AR) ${ARFLAGS} $@ $(sort $(notdir ${BOBJS})) 52 endif 53 54 endif # !Borland 55 56 57 install:: all 58 59 clean:: 60 ifdef QUIET 61 @$(ECHO) Cleaning objects for ${LOCALDIR} and ${lib} 62 endif 63 $Q$(RM) ${BOBJS} 64 $Q$(RM) ${targetlib} 65 66 distclean:: clean