openbcm

Git mirror of https://github.com/Broadcom-Network-Switching-Software/OpenBCM
git clone git://git.finwo.net/mirror/broadcom/openbcm
Log | Files | Refs | README

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