mirror of
https://github.com/gnustep/tools-make.git
synced 2025-04-23 22:33:28 +00:00
New variables FINAL_LDFLAGS and CORE_LDFLAGS such that ALL_LDFLAGS is now a combination of the two, and is used for final linking of an executable re shared library/bundle, while CORE_LDFLAGS is used when performing a partial link in a subproject.
This commit is contained in:
parent
8070ae6228
commit
b9984cae70
3 changed files with 41 additions and 25 deletions
|
@ -1,3 +1,12 @@
|
|||
2020-11-14 Richard Frith-Macdonald <rfm@gnu.org>
|
||||
|
||||
* rules.make:
|
||||
* target.make:
|
||||
New variables FINAL_LDFLAGS and CORE_LDFLAGS such that ALL_LDFLAGS is
|
||||
now a combination of the two, and is used for final linking of an
|
||||
executable re shared library/bundle, while CORE_LDFLAGS is used when
|
||||
performing a partial link in a subproject.
|
||||
|
||||
2020-10-31 Yavor Doganov <yavor@gnu.org>
|
||||
|
||||
* Instance/Documentation/texi.make: Honor @setfilename.
|
||||
|
|
12
rules.make
12
rules.make
|
@ -337,13 +337,19 @@ $(ADDITIONAL_JAVACFLAGS) $(AUXILIARY_JAVACFLAGS)
|
|||
ALL_JAVAHFLAGS = $(INTERNAL_CLASSPATHFLAGS) $(ADDITIONAL_JAVAHFLAGS) \
|
||||
$(AUXILIARY_JAVAHFLAGS)
|
||||
|
||||
# CORE_LDFLAGS are those used for both partial link and final link.
|
||||
ifeq ($(shared),no)
|
||||
ALL_LDFLAGS = $(STATIC_LDFLAGS)
|
||||
CORE_LDFLAGS = $(STATIC_LDFLAGS)
|
||||
else
|
||||
ALL_LDFLAGS =
|
||||
CORE_LDFLAGS =
|
||||
endif
|
||||
ALL_LDFLAGS += $(ADDITIONAL_LDFLAGS) $(AUXILIARY_LDFLAGS) $(GUI_LDFLAGS) \
|
||||
CORE_LDFLAGS += $(ADDITIONAL_LDFLAGS) $(AUXILIARY_LDFLAGS) $(GUI_LDFLAGS) \
|
||||
$(BACKEND_LDFLAGS) $(SYSTEM_LDFLAGS) $(INTERNAL_LDFLAGS)
|
||||
|
||||
# ALL_LDFLAGS are the set of flags used in the final link of an executable
|
||||
# or a shared library/bundle.
|
||||
ALL_LDFLAGS += $(CORE_LDFLAGS) $(FINAL_LDFLAGS)
|
||||
|
||||
# In some cases, ld is used for linking instead of $(CC), so we can't use
|
||||
# this in ALL_LDFLAGS
|
||||
CC_LDFLAGS = $(RUNTIME_FLAG) $(ARC_OBJCFLAGS)
|
||||
|
|
45
target.make
45
target.make
|
@ -330,7 +330,7 @@ AFTER_INSTALL_SHARED_LIB_CMD = \
|
|||
$(LN_S) $(LIB_LINK_VERSION_FILE) $(LIB_LINK_FILE) )
|
||||
|
||||
OBJ_MERGE_CMD = \
|
||||
$(LD) -nostdlib -keep_private_externs $(OBJ_MERGE_CMD_FLAG) $(ALL_LDFLAGS) -o $(GNUSTEP_OBJ_DIR)/$(SUBPROJECT_PRODUCT) $^ ;
|
||||
$(LD) -nostdlib -keep_private_externs $(OBJ_MERGE_CMD_FLAG) $(CORE_LDFLAGS) -o $(GNUSTEP_OBJ_DIR)/$(SUBPROJECT_PRODUCT) $^ ;
|
||||
|
||||
STATIC_LIB_LINK_CMD = \
|
||||
/usr/bin/libtool $(STATIC_LD_PREFLAGS) -static $(ARCH_FLAGS) $(ALL_LDFLAGS) -o $@ $^ \
|
||||
|
@ -518,7 +518,7 @@ AFTER_INSTALL_SHARED_LIB_CHOWN = \
|
|||
chown $(CHOWN_TO) $(LIB_LINK_FILE))
|
||||
|
||||
OBJ_MERGE_CMD = \
|
||||
$(LD) -nostdlib $(OBJ_MERGE_CMD_FLAG) $(ALL_LDFLAGS) -o $(GNUSTEP_OBJ_DIR)/$(SUBPROJECT_PRODUCT) $^ ;
|
||||
$(LD) -nostdlib $(OBJ_MERGE_CMD_FLAG) $(CORE_LDFLAGS) -o $(GNUSTEP_OBJ_DIR)/$(SUBPROJECT_PRODUCT) $^ ;
|
||||
|
||||
SHARED_CFLAGS += -fPIC
|
||||
SHARED_LIBEXT = .so
|
||||
|
@ -526,7 +526,7 @@ SHARED_LIBEXT = .so
|
|||
HAVE_BUNDLES = yes
|
||||
BUNDLE_LD = $(LD)
|
||||
BUNDLE_LDFLAGS += -shared
|
||||
ADDITIONAL_LDFLAGS += -rdynamic
|
||||
FINAL_LDFLAGS = -rdynamic
|
||||
STATIC_LDFLAGS += -static
|
||||
endif
|
||||
#
|
||||
|
@ -567,7 +567,7 @@ AFTER_INSTALL_SHARED_LIB_CHOWN = \
|
|||
chown $(CHOWN_TO) $(LIB_LINK_SONAME_FILE); \
|
||||
chown $(CHOWN_TO) $(LIB_LINK_FILE))
|
||||
OBJ_MERGE_CMD = \
|
||||
$(LD) -nostdlib $(OBJ_MERGE_CMD_FLAG) $(ALL_LDFLAGS) -o $(GNUSTEP_OBJ_DIR)/$(SUBPROJECT_PRODUCT) $^ ;
|
||||
$(LD) -nostdlib $(OBJ_MERGE_CMD_FLAG) $(CORE_LDFLAGS) -o $(GNUSTEP_OBJ_DIR)/$(SUBPROJECT_PRODUCT) $^ ;
|
||||
|
||||
SHARED_CFLAGS += -fPIC
|
||||
SHARED_LIBEXT = .so
|
||||
|
@ -575,7 +575,7 @@ SHARED_LIBEXT = .so
|
|||
HAVE_BUNDLES = yes
|
||||
BUNDLE_LD = $(LD)
|
||||
BUNDLE_LDFLAGS += -shared
|
||||
ADDITIONAL_LDFLAGS += -rdynamic
|
||||
FINAL_LDFLAGS = -rdynamic
|
||||
STATIC_LDFLAGS += -static
|
||||
|
||||
endif
|
||||
|
@ -601,7 +601,7 @@ SHARED_LIB_LINK_CMD = \
|
|||
$(RM_LN_S) $(LIB_LINK_FILE); \
|
||||
$(LN_S) $(LIB_LINK_VERSION_FILE) $(LIB_LINK_FILE))
|
||||
OBJ_MERGE_CMD = \
|
||||
$(LD) -nostdlib $(OBJ_MERGE_CMD_FLAG) $(ALL_LDFLAGS) -o $(GNUSTEP_OBJ_DIR)/$(SUBPROJECT_PRODUCT) $^ ;
|
||||
$(LD) -nostdlib $(OBJ_MERGE_CMD_FLAG) $(CORE_LDFLAGS) -o $(GNUSTEP_OBJ_DIR)/$(SUBPROJECT_PRODUCT) $^ ;
|
||||
|
||||
SHARED_CFLAGS += -fPIC
|
||||
SHARED_LIBEXT = .so
|
||||
|
@ -609,7 +609,7 @@ SHARED_LIBEXT = .so
|
|||
HAVE_BUNDLES = yes
|
||||
BUNDLE_LD = $(LD)
|
||||
BUNDLE_LDFLAGS += -shared
|
||||
ADDITIONAL_LDFLAGS += -rdynamic
|
||||
FINAL_LDFLAGS = -rdynamic
|
||||
ADDITIONAL_INCLUDE_DIRS +=
|
||||
STATIC_LDFLAGS += -static
|
||||
endif
|
||||
|
@ -634,7 +634,7 @@ SHARED_LIB_LINK_CMD = \
|
|||
$(RM_LN_S) $(LIB_LINK_FILE); \
|
||||
$(LN_S) $(LIB_LINK_VERSION_FILE) $(LIB_LINK_FILE))
|
||||
OBJ_MERGE_CMD = \
|
||||
$(LD) -nostdlib $(OBJ_MERGE_CMD_FLAG) $(ALL_LDFLAGS) -o $(GNUSTEP_OBJ_DIR)/$(SUBPROJECT_PRODUCT) $^ ;
|
||||
$(LD) -nostdlib $(OBJ_MERGE_CMD_FLAG) $(CORE_LDFLAGS) -o $(GNUSTEP_OBJ_DIR)/$(SUBPROJECT_PRODUCT) $^ ;
|
||||
|
||||
SHARED_CFLAGS += -fPIC
|
||||
SHARED_LIBEXT = .so
|
||||
|
@ -642,7 +642,8 @@ SHARED_LIBEXT = .so
|
|||
HAVE_BUNDLES = yes
|
||||
BUNDLE_LD = $(LD)
|
||||
BUNDLE_LDFLAGS += -shared
|
||||
ADDITIONAL_LDFLAGS += -rdynamic -Wl,-R/usr/pkg/lib -L/usr/pkg/lib -Wl,-R/usr/X11R6/lib -L/usr/X11R6/lib
|
||||
ADDITIONAL_LDFLAGS += -Wl,-R/usr/pkg/lib -L/usr/pkg/lib -Wl,-R/usr/X11R6/lib -L/usr/X11R6/lib
|
||||
FINAL_LDFLAGS = -rdynamic
|
||||
ADDITIONAL_INCLUDE_DIRS += -I/usr/pkg/include
|
||||
STATIC_LDFLAGS += -static
|
||||
endif
|
||||
|
@ -680,7 +681,7 @@ AFTER_INSTALL_SHARED_LIB_CMD = \
|
|||
)
|
||||
|
||||
OBJ_MERGE_CMD = \
|
||||
$(LD) -nostdlib $(OBJ_MERGE_CMD_FLAG) $(ALL_LDFLAGS) -o $(GNUSTEP_OBJ_DIR)/$(SUBPROJECT_PRODUCT) $^ ;
|
||||
$(LD) -nostdlib $(OBJ_MERGE_CMD_FLAG) $(CORE_LDFLAGS) -o $(GNUSTEP_OBJ_DIR)/$(SUBPROJECT_PRODUCT) $^ ;
|
||||
|
||||
SHARED_CFLAGS += -fPIC
|
||||
SHARED_LIBEXT = .so
|
||||
|
@ -714,7 +715,7 @@ SHARED_LIB_LINK_CMD = \
|
|||
$(RM_LN_S) $(LIB_LINK_FILE); \
|
||||
$(LN_S) $(LIB_LINK_VERSION_FILE) $(LIB_LINK_FILE))
|
||||
OBJ_MERGE_CMD = \
|
||||
$(LD) -nostdlib $(OBJ_MERGE_CMD_FLAG) $(ALL_LDFLAGS) -o $(GNUSTEP_OBJ_DIR)/$(SUBPROJECT_PRODUCT) $^ ;
|
||||
$(LD) -nostdlib $(OBJ_MERGE_CMD_FLAG) $(CORE_LDFLAGS) -o $(GNUSTEP_OBJ_DIR)/$(SUBPROJECT_PRODUCT) $^ ;
|
||||
|
||||
SHARED_CFLAGS += -fPIC
|
||||
SHARED_LIBEXT = .so
|
||||
|
@ -722,7 +723,7 @@ SHARED_LIBEXT = .so
|
|||
HAVE_BUNDLES = yes
|
||||
BUNDLE_LD = $(LD)
|
||||
BUNDLE_LDFLAGS += -shared
|
||||
ADDITIONAL_LDFLAGS += -rdynamic
|
||||
FINAL_LDFLAGS = -rdynamic
|
||||
STATIC_LDFLAGS += -static
|
||||
# Newer gcc's don't define this in Objective-C programs:
|
||||
AUXILIARY_CPPFLAGS += -D__LANGUAGES_C__
|
||||
|
@ -771,7 +772,7 @@ SHARED_CFLAGS += -fPIC
|
|||
SHARED_LIBEXT = .so
|
||||
|
||||
OBJ_MERGE_CMD = \
|
||||
$(LD) $(OBJ_MERGE_CMD_FLAG) $(ALL_LDFLAGS) -o $(GNUSTEP_OBJ_DIR)/$(SUBPROJECT_PRODUCT) $^ ;
|
||||
$(LD) $(OBJ_MERGE_CMD_FLAG) $(CORE_LDFLAGS) -o $(GNUSTEP_OBJ_DIR)/$(SUBPROJECT_PRODUCT) $^ ;
|
||||
|
||||
ADDITIONAL_LDFLAGS +=
|
||||
STATIC_LDFLAGS +=
|
||||
|
@ -846,7 +847,7 @@ DLL_LIBEXT = .dll
|
|||
|
||||
ifneq ($(CC),clang)
|
||||
OBJ_MERGE_CMD = \
|
||||
$(LD) -nostdlib $(OBJ_MERGE_CMD_FLAG) $(ALL_LDFLAGS) -o $(GNUSTEP_OBJ_DIR)/$(SUBPROJECT_PRODUCT) $^ ;
|
||||
$(LD) -nostdlib $(OBJ_MERGE_CMD_FLAG) $(CORE_LDFLAGS) -o $(GNUSTEP_OBJ_DIR)/$(SUBPROJECT_PRODUCT) $^ ;
|
||||
else
|
||||
OBJ_MERGE_CMD = \
|
||||
ar cr $(GNUSTEP_OBJ_DIR)/$(SUBPROJECT_PRODUCT) $^ ;
|
||||
|
@ -945,7 +946,7 @@ DLL_LIBEXT = .dll
|
|||
|
||||
ifneq ($(CC),clang)
|
||||
OBJ_MERGE_CMD = \
|
||||
$(LD) -nostdlib $(OBJ_MERGE_CMD_FLAG) $(ALL_LDFLAGS) -o $(GNUSTEP_OBJ_DIR)/$(SUBPROJECT_PRODUCT) $^ ;
|
||||
$(LD) -nostdlib $(OBJ_MERGE_CMD_FLAG) $(CORE_LDFLAGS) -o $(GNUSTEP_OBJ_DIR)/$(SUBPROJECT_PRODUCT) $^ ;
|
||||
else
|
||||
OBJ_MERGE_CMD = \
|
||||
ar cr $(GNUSTEP_OBJ_DIR)/$(SUBPROJECT_PRODUCT) $^ ;
|
||||
|
@ -1024,7 +1025,7 @@ CYGWIN_LD_FLAGS = -Wl,--export-all-symbols -Wl,--enable-auto-import
|
|||
#SHARED_CFLAGS +=
|
||||
|
||||
OBJ_MERGE_CMD = \
|
||||
$(LD) -nostdlib $(OBJ_MERGE_CMD_FLAG) $(ALL_LDFLAGS) $(CYGWIN_LD_FLAGS) -o $(GNUSTEP_OBJ_DIR)/$(SUBPROJECT_PRODUCT) $^ ;
|
||||
$(LD) -nostdlib $(OBJ_MERGE_CMD_FLAG) $(CORE_LDFLAGS) $(CYGWIN_LD_FLAGS) -o $(GNUSTEP_OBJ_DIR)/$(SUBPROJECT_PRODUCT) $^ ;
|
||||
|
||||
HAVE_BUNDLES = yes
|
||||
BUNDLE_LD = $(LD)
|
||||
|
@ -1085,7 +1086,7 @@ AFTER_INSTALL_SHARED_LIB_CHOWN = \
|
|||
chown $(CHOWN_TO) $(LIB_LINK_FILE))
|
||||
|
||||
OBJ_MERGE_CMD = \
|
||||
$(LD) -nostdlib $(OBJ_MERGE_CMD_FLAG) $(ALL_LDFLAGS) -o $(GNUSTEP_OBJ_DIR)/$(SUBPROJECT_PRODUCT) $^ ;
|
||||
$(LD) -nostdlib $(OBJ_MERGE_CMD_FLAG) $(CORE_LDFLAGS) -o $(GNUSTEP_OBJ_DIR)/$(SUBPROJECT_PRODUCT) $^ ;
|
||||
|
||||
SHARED_CFLAGS += -fpic -fPIC -std=gnu99
|
||||
SHARED_LIBEXT = .so
|
||||
|
@ -1145,7 +1146,7 @@ SHARED_LIB_LINK_CMD = \
|
|||
$(LN_S) $(LIB_LINK_VERSION_FILE) $(LIB_LINK_FILE))
|
||||
|
||||
OBJ_MERGE_CMD = \
|
||||
$(LD) -nostdlib $(OBJ_MERGE_CMD_FLAG) $(ALL_LDFLAGS) -o $(GNUSTEP_OBJ_DIR)/$(SUBPROJECT_PRODUCT) $^ ;
|
||||
$(LD) -nostdlib $(OBJ_MERGE_CMD_FLAG) $(CORE_LDFLAGS) -o $(GNUSTEP_OBJ_DIR)/$(SUBPROJECT_PRODUCT) $^ ;
|
||||
|
||||
ifeq ($(CC), cc)
|
||||
SHARED_CFLAGS += +z
|
||||
|
@ -1206,7 +1207,7 @@ AFTER_INSTALL_SHARED_LIB_CHOWN = \
|
|||
chown $(CHOWN_TO) $(LIB_LINK_FILE))
|
||||
|
||||
OBJ_MERGE_CMD = \
|
||||
$(LD) -nostdlib $(OBJ_MERGE_CMD_FLAG) $(ALL_LDFLAGS) -o $(GNUSTEP_OBJ_DIR)/$(SUBPROJECT_PRODUCT) $^ ;
|
||||
$(LD) -nostdlib $(OBJ_MERGE_CMD_FLAG) $(CORE_LDFLAGS) -o $(GNUSTEP_OBJ_DIR)/$(SUBPROJECT_PRODUCT) $^ ;
|
||||
|
||||
SHARED_CFLAGS += -fPIC
|
||||
SHARED_LIBEXT = .so
|
||||
|
@ -1214,7 +1215,7 @@ SHARED_LIBEXT = .so
|
|||
HAVE_BUNDLES = yes
|
||||
BUNDLE_LD = $(LD)
|
||||
BUNDLE_LDFLAGS += -shared
|
||||
ADDITIONAL_LDFLAGS += -rdynamic
|
||||
FINAL_LDFLAGS = -rdynamic
|
||||
STATIC_LDFLAGS += -static
|
||||
endif
|
||||
#
|
||||
|
@ -1256,7 +1257,7 @@ AFTER_INSTALL_SHARED_LIB_CHOWN = \
|
|||
chown $(CHOWN_TO) $(LIB_LINK_FILE))
|
||||
|
||||
OBJ_MERGE_CMD = \
|
||||
$(LD) -nostdlib $(OBJ_MERGE_CMD_FLAG) $(ALL_LDFLAGS) -o $(GNUSTEP_OBJ_DIR)/$(SUBPROJECT_PRODUCT) $^ ;
|
||||
$(LD) -nostdlib $(OBJ_MERGE_CMD_FLAG) $(CORE_LDFLAGS) -o $(GNUSTEP_OBJ_DIR)/$(SUBPROJECT_PRODUCT) $^ ;
|
||||
|
||||
SHARED_CFLAGS += -fPIC
|
||||
SHARED_LIBEXT = .so
|
||||
|
@ -1264,7 +1265,7 @@ SHARED_LIBEXT = .so
|
|||
HAVE_BUNDLES = yes
|
||||
BUNDLE_LD = $(LD)
|
||||
BUNDLE_LDFLAGS += -shared
|
||||
ADDITIONAL_LDFLAGS += -rdynamic
|
||||
FINAL_LDFLAGS = -rdynamic
|
||||
STATIC_LDFLAGS += -static
|
||||
endif
|
||||
#
|
||||
|
|
Loading…
Reference in a new issue