Subversion Repositories Kolibri OS

Rev

Rev 6517 | Rev 6519 | Go to most recent revision | Blame | Compare with Previous | Last modification | View Log | RSS feed

  1.  
  2. export CC = kos32-gcc
  3. export AR = kos32-ar
  4. export LD = kos32-ld
  5. export STRIP = kos32-strip
  6.  
  7. export SDK_DIR:= $(abspath ../../../../sdk)
  8.  
  9. cpu_type = i386
  10. enable_shared = no
  11. double_type_size = 64
  12. long_double_type_size = 96
  13. decimal_float = yes
  14. enable_vtable_verify = no
  15. enable_decimal_float = bid
  16. fixed_point = no
  17.  
  18.  
  19. #FPBIT = true
  20.  
  21. #DPBIT = true
  22.  
  23. CFLAGS_OPT+= -fomit-frame-pointer -fno-ident -mno-ms-bitfields
  24. CFLAGS_OPT+= -fbuilding-libgcc -fno-stack-protector
  25.  
  26. CFLAGS = -c -O2 -DIN_GCC -DIN_LIBGCC2 -DHAVE_CC_TLS -DUSE_EMUTLS
  27. CFLAGS+= -U_Win32 -U_WIN32 -U__MINGW32__ -UWIN32 -U_MSC_VER
  28. CFLAGS+= -W -Wall -Wno-narrowing -Wwrite-strings -Wcast-qual -Wstrict-prototypes
  29. CFLAGS+= -Wold-style-definition $(CFLAGS_OPT)
  30.  
  31. DECNUMINC = -Iconfig/libbid -DENABLE_DECIMAL_BID_FORMAT
  32.  
  33. INCLUDES = -I. -I../gcc -I../include $(DECNUMINC)
  34.  
  35. gcc_compile = $(CC) $(INCLUDES) $(CFLAGS)
  36.  
  37. # Defined in libgcc2.c, included only in the static library.
  38. LIB2FUNCS_ST = _eprintf __gcc_bcmp
  39.  
  40. # List of functions not to build from libgcc2.c.
  41. LIB2FUNCS_EXCLUDE =
  42.  
  43. # These might cause a divide overflow trap and so are compiled with
  44. # unwinder info.
  45. LIB2_DIVMOD_FUNCS = _divdi3 _moddi3 _udivdi3 _umoddi3 _udiv_w_sdiv _udivmoddi4
  46.  
  47.  
  48.  
  49. objext = .o
  50.  
  51. FPBIT_FUNCS = _pack_sf _unpack_sf _addsub_sf _mul_sf _div_sf \
  52.         _fpcmp_parts_sf _compare_sf _eq_sf _ne_sf _gt_sf _ge_sf \
  53.         _lt_sf _le_sf _unord_sf _si_to_sf _sf_to_si _negate_sf _make_sf \
  54.         _sf_to_df _sf_to_tf _thenan_sf _sf_to_usi _usi_to_sf
  55.  
  56. DPBIT_FUNCS = _pack_df _unpack_df _addsub_df _mul_df _div_df \
  57.         _fpcmp_parts_df _compare_df _eq_df _ne_df _gt_df _ge_df \
  58.         _lt_df _le_df _unord_df _si_to_df _df_to_si _negate_df _make_df \
  59.         _df_to_sf _df_to_tf _thenan_df _df_to_usi _usi_to_df
  60.  
  61. TPBIT_FUNCS = _pack_tf _unpack_tf _addsub_tf _mul_tf _div_tf \
  62.         _fpcmp_parts_tf _compare_tf _eq_tf _ne_tf _gt_tf _ge_tf \
  63.         _lt_tf _le_tf _unord_tf _si_to_tf _tf_to_si _negate_tf _make_tf \
  64.         _tf_to_df _tf_to_sf _thenan_tf _tf_to_usi _usi_to_tf
  65.  
  66. # Additional sources to handle exceptions; overridden by targets as needed.
  67. LIB2ADDEH = unwind-dw2.c unwind-dw2-fde.c unwind-sjlj.c unwind-c.c
  68. LIB2ADDEHSTATIC = $(LIB2ADDEH)
  69.  
  70. #LIB2ADD = $(srcdir)/config/i386/gthr-win32.c
  71. EH_MODEL = dw2
  72. CUSTOM_CRTSTUFF = yes
  73.  
  74.  
  75. crtbegin.o: $(srcdir)/config/i386/cygming-crtbegin.c
  76.  
  77.         $(crt_compile) -fno-omit-frame-pointer  -c $<
  78.  
  79.  
  80. crtbeginS.o: $(srcdir)/config/i386/cygming-crtbegin.c
  81.  
  82.         $(crt_compile) -fno-omit-frame-pointer  -c $< -DCRTSTUFFS_O
  83.  
  84.  
  85. # We intentionally use a implementation-reserved init priority of 0,
  86.  
  87. # so allow the warning.
  88.  
  89. crtend.o: $(srcdir)/config/i386/cygming-crtend.c
  90.  
  91.         $(crt_compile) -fno-omit-frame-pointer -Wno-error -c $<
  92.  
  93. # This is an endfile, Use -minline-all-stringops to ensure
  94.  
  95. # that __builtin_memset doesn't refer to the lib function memset().
  96.  
  97. crtfastmath.o: $(srcdir)/config/i386/crtfastmath.c
  98.  
  99.         $(gcc_compile) -mfxsr -msse -c $<
  100.  
  101. LIB1ASMSRC = i386/cygwin.S
  102.  
  103. LIB1ASMFUNCS = _chkstk _chkstk_ms
  104.  
  105. DFP_ENABLE = true
  106.  
  107. LIB2ADD += config/i386/cpuinfo.c
  108.  
  109. softfp_float_modes := tf
  110. softfp_int_modes := si di ti
  111.  
  112. softfp_extensions := sftf dftf xftf
  113.  
  114. softfp_truncations := tfsf tfdf tfxf
  115.  
  116. softfp_exclude_libgcc2 := n
  117.  
  118. # Omit TImode functions
  119.  
  120. softfp_int_modes := si di
  121.  
  122.  
  123. # Provide fallbacks for __builtin_copysignq and __builtin_fabsq.
  124.  
  125. LIB2ADD += config/i386/32/tf-signs.c
  126.  
  127. # While emutls.c has nothing to do with EH, it is in LIB2ADDEH*
  128. # instead of LIB2ADD because that's the way to be sure on some targets
  129. # (e.g. *-*-darwin*) only one copy of it is linked.
  130. LIB2ADDEH += emutls.c
  131. LIB2ADDEHSTATIC += emutls.c
  132.  
  133.  
  134. softfp_float_funcs = add$(m)3 div$(m)3 eq$(m)2 ge$(m)2 le$(m)2 mul$(m)3 \
  135.   neg$(m)2 sub$(m)3 unord$(m)2
  136. softfp_floatint_funcs = fix$(m)$(i) fixuns$(m)$(i) \
  137.   float$(i)$(m) floatun$(i)$(m)
  138.  
  139. softfp_func_list := \
  140.   $(foreach m,$(softfp_float_modes), \
  141.               $(softfp_float_funcs) \
  142.               $(foreach i,$(softfp_int_modes), \
  143.                           $(softfp_floatint_funcs))) \
  144.   $(foreach e,$(softfp_extensions),extend$(e)2) \
  145.   $(foreach t,$(softfp_truncations),trunc$(t)2) \
  146.   $(softfp_extras)
  147.  
  148. ifeq ($(softfp_exclude_libgcc2),y)
  149. # This list is taken from mklibgcc.in and doesn't presently allow for
  150. # 64-bit targets where si should become di and di should become ti.
  151. softfp_func_list := $(filter-out floatdidf floatdisf fixunsdfsi fixunssfsi \
  152.   fixunsdfdi fixdfdi fixunssfdi fixsfdi fixxfdi fixunsxfdi \
  153.   floatdixf fixunsxfsi fixtfdi fixunstfdi floatditf \
  154.   floatundidf floatundisf floatundixf floatunditf,$(softfp_func_list))
  155. endif
  156.  
  157. softfp_file_list := $(addsuffix .c,$(addprefix soft-fp/,$(softfp_func_list)))
  158.  
  159. # Disable missing prototype and type limit warnings.  The prototypes
  160. # for the functions in the soft-fp files have not been brought across
  161. # from glibc.
  162.  
  163. soft-fp-objects-base = $(basename $(notdir $(softfp_file_list)))
  164.  
  165. soft-fp-objects = $(addsuffix $(objext), $(soft-fp-objects-base)) \
  166.   $(addsuffix _s$(objext), $(soft-fp-objects-base))
  167.  
  168. $(soft-fp-objects) : INTERNAL_CFLAGS += -Wno-missing-prototypes -Wno-type-limits
  169.  
  170. LIB2ADD += $(softfp_file_list)
  171.  
  172. ifneq ($(softfp_exclude_libgcc2),y)
  173. # Functions in libgcc2.c are excluded for each soft-float mode (a
  174. # target may have both soft-float and hard-float modes), for the fixed
  175. # list of integer modes (si and di) for which libgcc2.c defines any
  176. # such functions.  Depending on the target, the si and di symbols may
  177. # in fact define di and ti functions.
  178.  
  179. LIB2FUNCS_EXCLUDE += \
  180.   $(addprefix _,$(foreach m,$(softfp_float_modes), \
  181.                             $(foreach i,si di, \
  182.                                         $(softfp_floatint_funcs))))
  183. endif
  184.  
  185. iterator = empty.mk $(patsubst %,static-object.mk,$(iter-items))
  186.  
  187.  
  188. lib2funcs =     _muldi3 _negdi2 _lshrdi3 _ashldi3 _ashrdi3 _cmpdi2 _ucmpdi2     \
  189.                 _clear_cache _trampoline __main _absvsi2 _absvdi2 _addvsi3      \
  190.                 _addvdi3 _subvsi3 _subvdi3 _mulvsi3 _mulvdi3 _negvsi2 _negvdi2  \
  191.                 _ctors _ffssi2 _ffsdi2 _clz _clzsi2 _clzdi2 _ctzsi2 _ctzdi2     \
  192.                 _popcount_tab _popcountsi2 _popcountdi2 _paritysi2 _paritydi2   \
  193.                 _powisf2 _powidf2 _powixf2 _powitf2 _mulsc3 _muldc3 _mulxc3     \
  194.                 _multc3 _divsc3 _divdc3 _divxc3 _divtc3 _bswapsi2 _bswapdi2     \
  195.                 _clrsbsi2 _clrsbdi2
  196.  
  197. swfloatfuncs = $(patsubst %,_fixuns%XX,sf df xf)
  198.  
  199. dwfloatfuncs = $(patsubst %,_fix%XX,sf df xf tf) \
  200.                 $(patsubst %,_fixuns%XX,sf df xf tf) \
  201.                 $(patsubst %,_floatXX%,sf df xf tf) \
  202.                 $(patsubst %,_floatunXX%,sf df xf tf)
  203.  
  204. ifeq ($(LIB2_SIDITI_CONV_FUNCS),)
  205.   lib2funcs += $(subst XX,si,$(swfloatfuncs))
  206.   lib2funcs += $(subst XX,di,$(dwfloatfuncs))
  207. endif
  208.  
  209. # These might cause a divide overflow trap and so are compiled with
  210. # unwinder info.
  211. LIB2_DIVMOD_FUNCS = _divdi3 _moddi3 _udivdi3 _umoddi3 _udiv_w_sdiv _udivmoddi4
  212.  
  213. # Remove any objects from lib2funcs and LIB2_DIVMOD_FUNCS that are
  214. # defined as optimized assembly code in LIB1ASMFUNCS or as C code
  215. # in LIB2FUNCS_EXCLUDE.
  216. lib2funcs := $(filter-out $(LIB2FUNCS_EXCLUDE) $(LIB1ASMFUNCS),$(lib2funcs))
  217. LIB2_DIVMOD_FUNCS := $(filter-out $(LIB2FUNCS_EXCLUDE) $(LIB1ASMFUNCS), \
  218.                        $(LIB2_DIVMOD_FUNCS))
  219.  
  220.  
  221. # Build lib2funcs.  For the static library also include LIB2FUNCS_ST.
  222. lib2funcs-o = $(patsubst %,%$(objext),$(lib2funcs) $(LIB2FUNCS_ST))
  223. $(lib2funcs-o): %$(objext): libgcc2.c
  224.         $(gcc_compile) -DL$* -c $< -o $@
  225. libgcc-objects += $(lib2funcs-o)
  226.  
  227. ifneq ($(LIB2_SIDITI_CONV_FUNCS),)
  228. # Build libgcc2.c for each conversion function, with a specific
  229. # L<func> definition and LIBGCC2_UNITS_PER_WORD setting.  The DImode
  230. # functions are built with a wordsize of 4; the TImode functions are
  231. # built with the same labels, but a wordsize of 8.
  232.  
  233. sifuncs := $(filter-out $(LIB2FUNCS_EXCLUDE),$(subst XX,si,$(swfloatfuncs)))
  234. difuncs := $(filter-out $(LIB2FUNCS_EXCLUDE),$(subst XX,di,$(dwfloatfuncs)))
  235. tifuncs := $(filter-out $(LIB2FUNCS_EXCLUDE),$(subst XX,ti,$(dwfloatfuncs)))
  236.  
  237. iter-items := $(sifuncs) $(difuncs) $(tifuncs)
  238. iter-labels := $(sifuncs) $(difuncs) $(difuncs)
  239. iter-sizes := $(patsubst %,4,$(sifuncs) $(difuncs)) $(patsubst %,8,$(tifuncs))
  240.  
  241. include empty.mk $(patsubst %,siditi-object.mk,$(iter-items))
  242.  
  243. libgcc-objects += $(patsubst %,%$(objext),$(sifuncs) $(difuncs) $(tifuncs))
  244. endif
  245.  
  246. ifeq ($(LIB2_DIVMOD_EXCEPTION_FLAGS),)
  247. # Provide default flags for compiling divmod functions, if they haven't been
  248. # set already by a target-specific Makefile fragment.
  249. LIB2_DIVMOD_EXCEPTION_FLAGS := -fexceptions -fnon-call-exceptions
  250. endif
  251.  
  252. # Build LIB2_DIVMOD_FUNCS.
  253. lib2-divmod-o = $(patsubst %,%$(objext),$(LIB2_DIVMOD_FUNCS))
  254. $(lib2-divmod-o): %$(objext): libgcc2.c
  255.         $(gcc_compile) -DL$* -c $< $(LIB2_DIVMOD_EXCEPTION_FLAGS) -o $@
  256. libgcc-objects += $(lib2-divmod-o)
  257.  
  258. ifeq ($(TPBIT),)
  259. # _sf_to_tf and _df_to_tf require tp-bit.c being compiled in.
  260. FPBIT_FUNCS := $(filter-out _sf_to_tf,$(FPBIT_FUNCS))
  261. DPBIT_FUNCS := $(filter-out _df_to_tf,$(DPBIT_FUNCS))
  262. endif
  263.  
  264. FPBIT_FUNCS := $(filter-out $(LIB2FUNCS_EXCLUDE),$(FPBIT_FUNCS))
  265. DPBIT_FUNCS := $(filter-out $(LIB2FUNCS_EXCLUDE),$(DPBIT_FUNCS))
  266. TPBIT_FUNCS := $(filter-out $(LIB2FUNCS_EXCLUDE),$(TPBIT_FUNCS))
  267.  
  268. fpbit-src := fp-bit.c
  269.  
  270. # Build FPBIT.
  271. ifneq ($(FPBIT),)
  272. fpbit-o = $(patsubst %,%$(objext),$(FPBIT_FUNCS))
  273. $(fpbit-o): %$(objext): $(fpbit-src)
  274.         $(gcc_compile) -DFINE_GRAINED_LIBRARIES -DL$* -DFLOAT $(FPBIT_CFLAGS) -c $< -o $@
  275. libgcc-objects += $(fpbit-o)
  276. endif
  277.  
  278. # Build DPBIT.
  279. ifneq ($(DPBIT),)
  280. dpbit-o = $(patsubst %,%$(objext),$(DPBIT_FUNCS))
  281. $(dpbit-o): %$(objext): $(fpbit-src)
  282.         $(gcc_compile) -DFINE_GRAINED_LIBRARIES -DL$* $(DPBIT_CFLAGS) -c $< -o $@
  283. libgcc-objects += $(dpbit-o)
  284. endif
  285.  
  286. # Build TPBIT.
  287. ifneq ($(TPBIT),)
  288. tpbit-o = $(patsubst %,%$(objext),$(TPBIT_FUNCS))
  289. $(tpbit-o): %$(objext): $(fpbit-src)
  290.         $(gcc_compile) -DFINE_GRAINED_LIBRARIES -DL$* -DTFLOAT $(TPBIT_CFLAGS) -c $< -o $@
  291. libgcc-objects += $(tpbit-o)
  292. endif
  293.  
  294. # Build decimal floating point support.
  295. ifeq ($(decimal_float),yes)
  296.  
  297. # If $DFP_ENABLE is set, then we want all data type sizes.
  298. ifneq ($(DFP_ENABLE),)
  299. D32PBIT = 1
  300. D64PBIT = 1
  301. D128PBIT = 1
  302. endif
  303.  
  304. dfp-filenames =
  305. ifneq ($(D32PBIT)$(D64PBIT)$(D128PBIT),)
  306. ifeq ($(enable_decimal_float),bid)
  307. dfp-filenames += bid_decimal_globals bid_decimal_data \
  308.                  bid_binarydecimal bid_convert_data \
  309.                  _isinfd32 _isinfd64 _isinfd128 bid64_noncomp \
  310.                  bid128_noncomp bid128_fma bid_round bid_from_int \
  311.                  bid64_add bid128_add bid64_div bid128_div \
  312.                  bid64_mul bid128_mul bid64_compare bid128_compare \
  313.                  bid128 bid32_to_bid64 bid32_to_bid128 bid64_to_bid128 \
  314.                  bid64_to_int32 bid64_to_int64 \
  315.                  bid64_to_uint32 bid64_to_uint64 \
  316.                  bid128_to_int32 bid128_to_int64 \
  317.                  bid128_to_uint32 bid128_to_uint64
  318. else
  319. dfp-filenames += decContext decNumber decExcept decRound decLibrary decDouble decPacked decQuad decSingle
  320. endif
  321. endif
  322.  
  323.  
  324. dfp-objects = $(patsubst %,%$(objext),$(dfp-filenames))
  325. ifeq ($(enable_decimal_float),bid)
  326. $(dfp-objects): %$(objext): config/libbid/%.c
  327. else
  328. $(dfp-objects): %$(objext): ../libdecnumber/%.c
  329. endif
  330.         $(gcc_compile) -c $<
  331. libgcc-objects += $(dfp-objects)
  332.  
  333. decbits-filenames =
  334. ifneq ($(enable_decimal_float),bid)
  335. ifneq ($(D32PBIT),)
  336. decbits-filenames += decimal32
  337. endif
  338.  
  339. ifneq ($(D64PBIT),)
  340. decbits-filenames += decimal64
  341. endif
  342.  
  343. ifneq ($(D128PBIT),)
  344. decbits-filenames += decimal128
  345. endif
  346. endif
  347.  
  348. decbits-objects = $(patsubst %,%$(objext),$(decbits-filenames))
  349. ifeq ($(enable_decimal_float),bid)
  350. $(decbits-objects): %$(objext): config/libbid/%.c
  351. else
  352. $(decbits-objects): %$(objext): ../libdecnumber/$(enable_decimal_float)/%.c
  353. endif
  354.         $(gcc_compile) -c $<
  355. libgcc-objects += $(decbits-objects)
  356.  
  357.  
  358.  
  359. # Next build individual support functions.
  360. D32PBIT_FUNCS = _addsub_sd _div_sd _mul_sd _plus_sd _minus_sd \
  361.         _eq_sd _ne_sd _lt_sd _gt_sd _le_sd _ge_sd \
  362.         _sd_to_si _sd_to_di _sd_to_usi _sd_to_udi \
  363.         _si_to_sd _di_to_sd _usi_to_sd _udi_to_sd \
  364.         _sd_to_sf _sd_to_df _sd_to_xf _sd_to_tf \
  365.         _sf_to_sd _df_to_sd _xf_to_sd _tf_to_sd \
  366.         _sd_to_dd _sd_to_td _unord_sd _conv_sd
  367.  
  368. D64PBIT_FUNCS = _addsub_dd _div_dd _mul_dd _plus_dd _minus_dd \
  369.         _eq_dd _ne_dd _lt_dd _gt_dd _le_dd _ge_dd \
  370.         _dd_to_si _dd_to_di _dd_to_usi _dd_to_udi \
  371.         _si_to_dd _di_to_dd _usi_to_dd _udi_to_dd \
  372.         _dd_to_sf _dd_to_df _dd_to_xf _dd_to_tf \
  373.         _sf_to_dd _df_to_dd _xf_to_dd _tf_to_dd \
  374.         _dd_to_sd _dd_to_td _unord_dd _conv_dd
  375.  
  376. D128PBIT_FUNCS = _addsub_td _div_td _mul_td _plus_td _minus_td \
  377.         _eq_td _ne_td _lt_td _gt_td _le_td _ge_td \
  378.         _td_to_si _td_to_di _td_to_usi _td_to_udi \
  379.         _si_to_td _di_to_td _usi_to_td _udi_to_td \
  380.         _td_to_sf _td_to_df _td_to_xf _td_to_tf \
  381.         _sf_to_td _df_to_td _xf_to_td _tf_to_td \
  382.         _td_to_sd _td_to_dd _unord_td _conv_td
  383.  
  384. ifeq ($(enable_decimal_float),bid)
  385. ifneq ($(D32PBIT),)
  386. D32PBIT_FUNCS:=$(filter-out _plus_sd _minus_sd _conv_sd, $(D32PBIT_FUNCS))
  387. endif
  388.  
  389. ifneq ($(D64PBIT),)
  390. D64PBIT_FUNCS:=$(filter-out _plus_dd _minus_dd _conv_dd, $(D64PBIT_FUNCS))
  391. endif
  392.  
  393. ifneq ($(D128PBIT),)
  394. D128PBIT_FUNCS:=$(filter-out _plus_td _minus_td _conv_td, $(D128PBIT_FUNCS))
  395. endif
  396. endif
  397.  
  398. ifneq ($(D32PBIT),)
  399. d32pbit-o = $(patsubst %,%$(objext),$(D32PBIT_FUNCS))
  400. ifeq ($(enable_decimal_float),bid)
  401. $(d32pbit-o): %$(objext): config/libbid/%.c
  402. else
  403. $(d32pbit-o): %$(objext): $(srcdir)/dfp-bit.c
  404. endif
  405.         $(gcc_compile) -DFINE_GRAINED_LIBRARIES -DL$* -DWIDTH=32 -c $< -o $@
  406. libgcc-objects += $(d32pbit-o)
  407. endif
  408.  
  409. ifneq ($(D64PBIT),)
  410. d64pbit-o = $(patsubst %,%$(objext),$(D64PBIT_FUNCS))
  411. ifeq ($(enable_decimal_float),bid)
  412. $(d64pbit-o): %$(objext): config/libbid/%.c
  413. else
  414. $(d64pbit-o): %$(objext): $(srcdir)/dfp-bit.c
  415. endif
  416.         $(gcc_compile) -DFINE_GRAINED_LIBRARIES -DL$* -DWIDTH=64 -c $<
  417. libgcc-objects += $(d64pbit-o)
  418. endif
  419.  
  420. ifneq ($(D128PBIT),)
  421. d128pbit-o = $(patsubst %,%$(objext),$(D128PBIT_FUNCS))
  422. ifeq ($(enable_decimal_float),bid)
  423. $(d128pbit-o): %$(objext): config/libbid/%.c
  424. else
  425. $(d128pbit-o): %$(objext): $(srcdir)/dfp-bit.c
  426. endif
  427.         $(gcc_compile) -DFINE_GRAINED_LIBRARIES -DL$* -DWIDTH=128 -c $<
  428. libgcc-objects += $(d128pbit-o)
  429. endif
  430.  
  431. endif
  432.  
  433. # Build LIB2ADD and LIB2ADD_ST.
  434. ifneq ($(filter-out %.c %.S %.asm,$(LIB2ADD) $(LIB2ADD_ST)),)
  435. $(error Unsupported files in LIB2ADD or LIB2ADD_ST.)
  436. endif
  437.  
  438. libgcc-objects += $(addsuffix $(objext),$(basename $(notdir $(LIB2ADD))))
  439. #libgcc-objects += $(addsuffix $(objext),$(basename $(notdir $(LIB2ADD_ST))))
  440.  
  441. c_flags :=
  442. iter-items := $(LIB2ADD) $(LIB2ADD_ST)
  443. include $(iterator)
  444.  
  445. c_flags := -fexceptions
  446.  
  447. #libgcc-objects += $(addsuffix $(objext),$(basename $(notdir $(LIB2ADDEH))))
  448.  
  449. iter-items := $(LIB2ADDEH)
  450. include $(iterator)
  451.  
  452.  
  453. # targets
  454.  
  455. all: libgcc.a
  456.  
  457. libgcc.a : $(libgcc-objects) Makefile
  458.         $(AR) crs libgcc.a $(libgcc-objects)
  459. #       mv -f libbfd.a $(SDK_DIR)/lib
  460.  
  461.  
  462.