xref: /optee_os/lib/libutils/isoc/arch/arm/softfloat/build/Linux-386-GCC/Makefile (revision 1bb929836182ecb96d2d9d268daa807c67596396)
1*1bb92983SJerome Forissier# SPDX-License-Identifier: BSD-3-Clause
29403c583SJens Wiklander
39403c583SJens Wiklander#=============================================================================
49403c583SJens Wiklander#
59403c583SJens Wiklander# This Makefile is part of the SoftFloat IEEE Floating-Point Arithmetic
69403c583SJens Wiklander# Package, Release 3a, by John R. Hauser.
79403c583SJens Wiklander#
89403c583SJens Wiklander# Copyright 2011, 2012, 2013, 2014 The Regents of the University of
99403c583SJens Wiklander# California.  All rights reserved.
109403c583SJens Wiklander#
119403c583SJens Wiklander# Redistribution and use in source and binary forms, with or without
129403c583SJens Wiklander# modification, are permitted provided that the following conditions are met:
139403c583SJens Wiklander#
149403c583SJens Wiklander#  1. Redistributions of source code must retain the above copyright notice,
159403c583SJens Wiklander#     this list of conditions, and the following disclaimer.
169403c583SJens Wiklander#
179403c583SJens Wiklander#  2. Redistributions in binary form must reproduce the above copyright
189403c583SJens Wiklander#     notice, this list of conditions, and the following disclaimer in the
199403c583SJens Wiklander#     documentation and/or other materials provided with the distribution.
209403c583SJens Wiklander#
219403c583SJens Wiklander#  3. Neither the name of the University nor the names of its contributors
229403c583SJens Wiklander#     may be used to endorse or promote products derived from this software
239403c583SJens Wiklander#     without specific prior written permission.
249403c583SJens Wiklander#
259403c583SJens Wiklander# THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS "AS IS", AND ANY
269403c583SJens Wiklander# EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
279403c583SJens Wiklander# WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE, ARE
289403c583SJens Wiklander# DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE FOR ANY
299403c583SJens Wiklander# DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
309403c583SJens Wiklander# (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
319403c583SJens Wiklander# LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
329403c583SJens Wiklander# ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
339403c583SJens Wiklander# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
349403c583SJens Wiklander# THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
359403c583SJens Wiklander#
369403c583SJens Wiklander#=============================================================================
379403c583SJens Wiklander
389403c583SJens WiklanderSOURCE_DIR = ../../source
399403c583SJens WiklanderSPECIALIZE_TYPE = 8086
409403c583SJens Wiklander
419403c583SJens WiklanderSOFTFLOAT_OPTS = -DINLINE_LEVEL=5 -DSOFTFLOAT_FAST_DIV64TO32
429403c583SJens Wiklander
439403c583SJens WiklanderDELETE = rm -f
449403c583SJens WiklanderC_INCLUDES = -I. -I$(SOURCE_DIR)/$(SPECIALIZE_TYPE) -I$(SOURCE_DIR)/include
459403c583SJens WiklanderCOMPILE_C = \
469403c583SJens Wiklander  gcc -c -Werror-implicit-function-declaration $(SOFTFLOAT_OPTS) \
479403c583SJens Wiklander    $(C_INCLUDES) -O2 -o $@
489403c583SJens WiklanderMAKELIB = ar crs $@
499403c583SJens Wiklander
509403c583SJens WiklanderOBJ = .o
519403c583SJens WiklanderLIB = .a
529403c583SJens Wiklander
539403c583SJens Wiklander.PHONY: all
549403c583SJens Wiklanderall: softfloat$(LIB)
559403c583SJens Wiklander
569403c583SJens WiklanderOBJS_PRIMITIVES = \
579403c583SJens Wiklander  s_compare96M$(OBJ) \
589403c583SJens Wiklander  s_compare128M$(OBJ) \
599403c583SJens Wiklander  s_shortShiftLeft64To96M$(OBJ) \
609403c583SJens Wiklander  s_shortShiftLeftM$(OBJ) \
619403c583SJens Wiklander  s_shiftLeftM$(OBJ) \
629403c583SJens Wiklander  s_shortShiftRightM$(OBJ) \
639403c583SJens Wiklander  s_shortShiftRightJam64$(OBJ) \
649403c583SJens Wiklander  s_shortShiftRightJamM$(OBJ) \
659403c583SJens Wiklander  s_shiftRightJam32$(OBJ) \
669403c583SJens Wiklander  s_shiftRightJam64$(OBJ) \
679403c583SJens Wiklander  s_shiftRightJamM$(OBJ) \
689403c583SJens Wiklander  s_shiftRightM$(OBJ) \
699403c583SJens Wiklander  s_countLeadingZeros8$(OBJ) \
709403c583SJens Wiklander  s_countLeadingZeros32$(OBJ) \
719403c583SJens Wiklander  s_countLeadingZeros64$(OBJ) \
729403c583SJens Wiklander  s_addM$(OBJ) \
739403c583SJens Wiklander  s_addCarryM$(OBJ) \
749403c583SJens Wiklander  s_addComplCarryM$(OBJ) \
759403c583SJens Wiklander  s_negXM$(OBJ) \
769403c583SJens Wiklander  s_sub1XM$(OBJ) \
779403c583SJens Wiklander  s_subM$(OBJ) \
789403c583SJens Wiklander  s_mul64To128M$(OBJ) \
799403c583SJens Wiklander  s_mul128MTo256M$(OBJ) \
809403c583SJens Wiklander  s_approxRecip32_1$(OBJ) \
819403c583SJens Wiklander  s_approxRecipSqrt32_1$(OBJ) \
829403c583SJens Wiklander  s_remStepMBy32$(OBJ) \
839403c583SJens Wiklander
849403c583SJens WiklanderOBJS_SPECIALIZE = \
859403c583SJens Wiklander  softfloat_raiseFlags$(OBJ) \
869403c583SJens Wiklander  s_f32UIToCommonNaN$(OBJ) \
879403c583SJens Wiklander  s_commonNaNToF32UI$(OBJ) \
889403c583SJens Wiklander  s_propagateNaNF32UI$(OBJ) \
899403c583SJens Wiklander  s_f64UIToCommonNaN$(OBJ) \
909403c583SJens Wiklander  s_commonNaNToF64UI$(OBJ) \
919403c583SJens Wiklander  s_propagateNaNF64UI$(OBJ) \
929403c583SJens Wiklander  extF80M_isSignalingNaN$(OBJ) \
939403c583SJens Wiklander  s_extF80MToCommonNaN$(OBJ) \
949403c583SJens Wiklander  s_commonNaNToExtF80M$(OBJ) \
959403c583SJens Wiklander  s_propagateNaNExtF80M$(OBJ) \
969403c583SJens Wiklander  f128M_isSignalingNaN$(OBJ) \
979403c583SJens Wiklander  s_f128MToCommonNaN$(OBJ) \
989403c583SJens Wiklander  s_commonNaNToF128M$(OBJ) \
999403c583SJens Wiklander  s_propagateNaNF128M$(OBJ) \
1009403c583SJens Wiklander
1019403c583SJens WiklanderOBJS_OTHERS = \
1029403c583SJens Wiklander  s_roundPackToUI32$(OBJ) \
1039403c583SJens Wiklander  s_roundPackMToUI64$(OBJ) \
1049403c583SJens Wiklander  s_roundPackToI32$(OBJ) \
1059403c583SJens Wiklander  s_roundPackMToI64$(OBJ) \
1069403c583SJens Wiklander  s_normSubnormalF32Sig$(OBJ) \
1079403c583SJens Wiklander  s_roundPackToF32$(OBJ) \
1089403c583SJens Wiklander  s_normRoundPackToF32$(OBJ) \
1099403c583SJens Wiklander  s_addMagsF32$(OBJ) \
1109403c583SJens Wiklander  s_subMagsF32$(OBJ) \
1119403c583SJens Wiklander  s_mulAddF32$(OBJ) \
1129403c583SJens Wiklander  s_normSubnormalF64Sig$(OBJ) \
1139403c583SJens Wiklander  s_roundPackToF64$(OBJ) \
1149403c583SJens Wiklander  s_normRoundPackToF64$(OBJ) \
1159403c583SJens Wiklander  s_addMagsF64$(OBJ) \
1169403c583SJens Wiklander  s_subMagsF64$(OBJ) \
1179403c583SJens Wiklander  s_mulAddF64$(OBJ) \
1189403c583SJens Wiklander  s_tryPropagateNaNExtF80M$(OBJ) \
1199403c583SJens Wiklander  s_invalidExtF80M$(OBJ) \
1209403c583SJens Wiklander  s_normExtF80SigM$(OBJ) \
1219403c583SJens Wiklander  s_roundPackMToExtF80M$(OBJ) \
1229403c583SJens Wiklander  s_normRoundPackMToExtF80M$(OBJ) \
1239403c583SJens Wiklander  s_addExtF80M$(OBJ) \
1249403c583SJens Wiklander  s_compareNonnormExtF80M$(OBJ) \
1259403c583SJens Wiklander  s_isNaNF128M$(OBJ) \
1269403c583SJens Wiklander  s_tryPropagateNaNF128M$(OBJ) \
1279403c583SJens Wiklander  s_invalidF128M$(OBJ) \
1289403c583SJens Wiklander  s_shiftNormSigF128M$(OBJ) \
1299403c583SJens Wiklander  s_roundPackMToF128M$(OBJ) \
1309403c583SJens Wiklander  s_normRoundPackMToF128M$(OBJ) \
1319403c583SJens Wiklander  s_addF128M$(OBJ) \
1329403c583SJens Wiklander  s_mulAddF128M$(OBJ) \
1339403c583SJens Wiklander  softfloat_state$(OBJ) \
1349403c583SJens Wiklander  ui32_to_f32$(OBJ) \
1359403c583SJens Wiklander  ui32_to_f64$(OBJ) \
1369403c583SJens Wiklander  ui32_to_extF80M$(OBJ) \
1379403c583SJens Wiklander  ui32_to_f128M$(OBJ) \
1389403c583SJens Wiklander  ui64_to_f32$(OBJ) \
1399403c583SJens Wiklander  ui64_to_f64$(OBJ) \
1409403c583SJens Wiklander  ui64_to_extF80M$(OBJ) \
1419403c583SJens Wiklander  ui64_to_f128M$(OBJ) \
1429403c583SJens Wiklander  i32_to_f32$(OBJ) \
1439403c583SJens Wiklander  i32_to_f64$(OBJ) \
1449403c583SJens Wiklander  i32_to_extF80M$(OBJ) \
1459403c583SJens Wiklander  i32_to_f128M$(OBJ) \
1469403c583SJens Wiklander  i64_to_f32$(OBJ) \
1479403c583SJens Wiklander  i64_to_f64$(OBJ) \
1489403c583SJens Wiklander  i64_to_extF80M$(OBJ) \
1499403c583SJens Wiklander  i64_to_f128M$(OBJ) \
1509403c583SJens Wiklander  f32_to_ui32$(OBJ) \
1519403c583SJens Wiklander  f32_to_ui64$(OBJ) \
1529403c583SJens Wiklander  f32_to_i32$(OBJ) \
1539403c583SJens Wiklander  f32_to_i64$(OBJ) \
1549403c583SJens Wiklander  f32_to_ui32_r_minMag$(OBJ) \
1559403c583SJens Wiklander  f32_to_ui64_r_minMag$(OBJ) \
1569403c583SJens Wiklander  f32_to_i32_r_minMag$(OBJ) \
1579403c583SJens Wiklander  f32_to_i64_r_minMag$(OBJ) \
1589403c583SJens Wiklander  f32_to_f64$(OBJ) \
1599403c583SJens Wiklander  f32_to_extF80M$(OBJ) \
1609403c583SJens Wiklander  f32_to_f128M$(OBJ) \
1619403c583SJens Wiklander  f32_roundToInt$(OBJ) \
1629403c583SJens Wiklander  f32_add$(OBJ) \
1639403c583SJens Wiklander  f32_sub$(OBJ) \
1649403c583SJens Wiklander  f32_mul$(OBJ) \
1659403c583SJens Wiklander  f32_mulAdd$(OBJ) \
1669403c583SJens Wiklander  f32_div$(OBJ) \
1679403c583SJens Wiklander  f32_rem$(OBJ) \
1689403c583SJens Wiklander  f32_sqrt$(OBJ) \
1699403c583SJens Wiklander  f32_eq$(OBJ) \
1709403c583SJens Wiklander  f32_le$(OBJ) \
1719403c583SJens Wiklander  f32_lt$(OBJ) \
1729403c583SJens Wiklander  f32_eq_signaling$(OBJ) \
1739403c583SJens Wiklander  f32_le_quiet$(OBJ) \
1749403c583SJens Wiklander  f32_lt_quiet$(OBJ) \
1759403c583SJens Wiklander  f32_isSignalingNaN$(OBJ) \
1769403c583SJens Wiklander  f64_to_ui32$(OBJ) \
1779403c583SJens Wiklander  f64_to_ui64$(OBJ) \
1789403c583SJens Wiklander  f64_to_i32$(OBJ) \
1799403c583SJens Wiklander  f64_to_i64$(OBJ) \
1809403c583SJens Wiklander  f64_to_ui32_r_minMag$(OBJ) \
1819403c583SJens Wiklander  f64_to_ui64_r_minMag$(OBJ) \
1829403c583SJens Wiklander  f64_to_i32_r_minMag$(OBJ) \
1839403c583SJens Wiklander  f64_to_i64_r_minMag$(OBJ) \
1849403c583SJens Wiklander  f64_to_f32$(OBJ) \
1859403c583SJens Wiklander  f64_to_extF80M$(OBJ) \
1869403c583SJens Wiklander  f64_to_f128M$(OBJ) \
1879403c583SJens Wiklander  f64_roundToInt$(OBJ) \
1889403c583SJens Wiklander  f64_add$(OBJ) \
1899403c583SJens Wiklander  f64_sub$(OBJ) \
1909403c583SJens Wiklander  f64_mul$(OBJ) \
1919403c583SJens Wiklander  f64_mulAdd$(OBJ) \
1929403c583SJens Wiklander  f64_div$(OBJ) \
1939403c583SJens Wiklander  f64_rem$(OBJ) \
1949403c583SJens Wiklander  f64_sqrt$(OBJ) \
1959403c583SJens Wiklander  f64_eq$(OBJ) \
1969403c583SJens Wiklander  f64_le$(OBJ) \
1979403c583SJens Wiklander  f64_lt$(OBJ) \
1989403c583SJens Wiklander  f64_eq_signaling$(OBJ) \
1999403c583SJens Wiklander  f64_le_quiet$(OBJ) \
2009403c583SJens Wiklander  f64_lt_quiet$(OBJ) \
2019403c583SJens Wiklander  f64_isSignalingNaN$(OBJ) \
2029403c583SJens Wiklander  extF80M_to_ui32$(OBJ) \
2039403c583SJens Wiklander  extF80M_to_ui64$(OBJ) \
2049403c583SJens Wiklander  extF80M_to_i32$(OBJ) \
2059403c583SJens Wiklander  extF80M_to_i64$(OBJ) \
2069403c583SJens Wiklander  extF80M_to_ui32_r_minMag$(OBJ) \
2079403c583SJens Wiklander  extF80M_to_ui64_r_minMag$(OBJ) \
2089403c583SJens Wiklander  extF80M_to_i32_r_minMag$(OBJ) \
2099403c583SJens Wiklander  extF80M_to_i64_r_minMag$(OBJ) \
2109403c583SJens Wiklander  extF80M_to_f32$(OBJ) \
2119403c583SJens Wiklander  extF80M_to_f64$(OBJ) \
2129403c583SJens Wiklander  extF80M_to_f128M$(OBJ) \
2139403c583SJens Wiklander  extF80M_roundToInt$(OBJ) \
2149403c583SJens Wiklander  extF80M_add$(OBJ) \
2159403c583SJens Wiklander  extF80M_sub$(OBJ) \
2169403c583SJens Wiklander  extF80M_mul$(OBJ) \
2179403c583SJens Wiklander  extF80M_div$(OBJ) \
2189403c583SJens Wiklander  extF80M_rem$(OBJ) \
2199403c583SJens Wiklander  extF80M_sqrt$(OBJ) \
2209403c583SJens Wiklander  extF80M_eq$(OBJ) \
2219403c583SJens Wiklander  extF80M_le$(OBJ) \
2229403c583SJens Wiklander  extF80M_lt$(OBJ) \
2239403c583SJens Wiklander  extF80M_eq_signaling$(OBJ) \
2249403c583SJens Wiklander  extF80M_le_quiet$(OBJ) \
2259403c583SJens Wiklander  extF80M_lt_quiet$(OBJ) \
2269403c583SJens Wiklander  f128M_to_ui32$(OBJ) \
2279403c583SJens Wiklander  f128M_to_ui64$(OBJ) \
2289403c583SJens Wiklander  f128M_to_i32$(OBJ) \
2299403c583SJens Wiklander  f128M_to_i64$(OBJ) \
2309403c583SJens Wiklander  f128M_to_ui32_r_minMag$(OBJ) \
2319403c583SJens Wiklander  f128M_to_ui64_r_minMag$(OBJ) \
2329403c583SJens Wiklander  f128M_to_i32_r_minMag$(OBJ) \
2339403c583SJens Wiklander  f128M_to_i64_r_minMag$(OBJ) \
2349403c583SJens Wiklander  f128M_to_f32$(OBJ) \
2359403c583SJens Wiklander  f128M_to_f64$(OBJ) \
2369403c583SJens Wiklander  f128M_to_extF80M$(OBJ) \
2379403c583SJens Wiklander  f128M_roundToInt$(OBJ) \
2389403c583SJens Wiklander  f128M_add$(OBJ) \
2399403c583SJens Wiklander  f128M_sub$(OBJ) \
2409403c583SJens Wiklander  f128M_mul$(OBJ) \
2419403c583SJens Wiklander  f128M_mulAdd$(OBJ) \
2429403c583SJens Wiklander  f128M_div$(OBJ) \
2439403c583SJens Wiklander  f128M_rem$(OBJ) \
2449403c583SJens Wiklander  f128M_sqrt$(OBJ) \
2459403c583SJens Wiklander  f128M_eq$(OBJ) \
2469403c583SJens Wiklander  f128M_le$(OBJ) \
2479403c583SJens Wiklander  f128M_lt$(OBJ) \
2489403c583SJens Wiklander  f128M_eq_signaling$(OBJ) \
2499403c583SJens Wiklander  f128M_le_quiet$(OBJ) \
2509403c583SJens Wiklander  f128M_lt_quiet$(OBJ) \
2519403c583SJens Wiklander
2529403c583SJens WiklanderOBJS_ALL = $(OBJS_PRIMITIVES) $(OBJS_SPECIALIZE) $(OBJS_OTHERS)
2539403c583SJens Wiklander
2549403c583SJens Wiklander$(OBJS_ALL): \
2559403c583SJens Wiklander  platform.h $(SOURCE_DIR)/include/primitiveTypes.h \
2569403c583SJens Wiklander  $(SOURCE_DIR)/include/primitives.h
2579403c583SJens Wiklander$(OBJS_SPECIALIZE) $(OBJS_OTHERS): \
2589403c583SJens Wiklander  $(SOURCE_DIR)/include/softfloat_types.h $(SOURCE_DIR)/include/internals.h \
2599403c583SJens Wiklander  $(SOURCE_DIR)/$(SPECIALIZE_TYPE)/specialize.h \
2609403c583SJens Wiklander  $(SOURCE_DIR)/include/softfloat.h
2619403c583SJens Wiklander
2629403c583SJens Wiklander$(OBJS_PRIMITIVES) $(OBJS_OTHERS): %$(OBJ): $(SOURCE_DIR)/%.c
2639403c583SJens Wiklander	$(COMPILE_C) $(SOURCE_DIR)/$*.c
2649403c583SJens Wiklander
2659403c583SJens Wiklander$(OBJS_SPECIALIZE): %$(OBJ): $(SOURCE_DIR)/$(SPECIALIZE_TYPE)/%.c
2669403c583SJens Wiklander	$(COMPILE_C) $(SOURCE_DIR)/$(SPECIALIZE_TYPE)/$*.c
2679403c583SJens Wiklander
2689403c583SJens Wiklandersoftfloat$(LIB): $(OBJS_ALL)
2699403c583SJens Wiklander	$(DELETE) $@
2709403c583SJens Wiklander	$(MAKELIB) $^
2719403c583SJens Wiklander
2729403c583SJens Wiklander.PHONY: clean
2739403c583SJens Wiklanderclean:
2749403c583SJens Wiklander	$(DELETE) $(OBJS_ALL) softfloat$(LIB)
2759403c583SJens Wiklander
276