Fixed building frameworks where the framework has no headers, but the

subprojects do


git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/tools/make/trunk@21060 72102866-910b-0410-8b05-ffd578937521
This commit is contained in:
Nicola Pero 2005-04-06 12:02:18 +00:00
parent 5f36b12b0e
commit aab3bd44f3
3 changed files with 47 additions and 36 deletions

View file

@ -1,3 +1,12 @@
2005-04-06 Nicola Pero <n.pero@mi.flashnet.it>
* Instance/framework.make: Create header directories and copy them
even if HEADER_FILES is empty. This fixes problems when
subprojects have headers, but the top-level framework does not.
* Instance/Shared/headers.make (HEADER_FILES_DIR,
HEADER_FILES_INSTALL_DIR): Always compute those two variables
even if HEADER_FILES is empty.
2005-04-06 Nicola Pero <n.pero@mi.flashnet.it>
* Instance/framework.make ($(FRAMEWORK_HEADER_FILES)): Fixed

View file

@ -45,14 +45,14 @@ HEADER_FILES = $($(GNUSTEP_INSTANCE)_HEADER_FILES)
shared-instance-headers-install \
shared-instance-headers-uninstall
ifeq ($(HEADER_FILES),)
shared-instance-headers-install:
shared-instance-headers-uninstall:
else # we have some HEADER_FILES
# We always compute HEADER_FILES_DIR and HEADER_FILES_INSTALL_DIR.
# The reason is that frameworks might have headers in subprojects (and
# not in the top framework makefile!). Those headers are
# automatically used and installed, but in the top-level makefile,
# HEADER_FILES = '', still you might want to have a special
# HEADER_FILES_DIR and HEADER_FILES_INSTALL_DIR even in this case.
# NB: Header installation for frameworks is done by the framework
# code.
HEADER_FILES_DIR = $($(GNUSTEP_INSTANCE)_HEADER_FILES_DIR)
ifeq ($(HEADER_FILES_DIR),)
@ -66,6 +66,14 @@ ifeq ($(HEADER_FILES_INSTALL_DIR),)
HEADER_FILES_INSTALL_DIR = $(GNUSTEP_INSTANCE)
endif
ifeq ($(HEADER_FILES),)
shared-instance-headers-install:
shared-instance-headers-uninstall:
else # we have some HEADER_FILES
#
# We provide two different algorithms of installing headers.
#
@ -81,7 +89,7 @@ shared-instance-headers-install: $(GNUSTEP_HEADERS)/$(HEADER_FILES_INSTALL_DIR)
$(ECHO_INSTALLING_HEADERS)for file in $(HEADER_FILES) __done; do \
if [ $$file != __done ]; then \
$(INSTALL_DATA) $(HEADER_FILES_DIR)/$$file \
$(GNUSTEP_HEADERS)/$(HEADER_FILES_INSTALL_DIR)/$$file; \
$(GNUSTEP_HEADERS)/$(HEADER_FILES_INSTALL_DIR)/$$file; \
fi; \
done$(END_ECHO)

View file

@ -111,10 +111,12 @@ FRAMEWORK_DIR = $(GNUSTEP_BUILD_DIR)/$(FRAMEWORK_DIR_NAME)
FRAMEWORK_VERSION_DIR_NAME = $(FRAMEWORK_DIR_NAME)/Versions/$(CURRENT_VERSION_NAME)
FRAMEWORK_VERSION_DIR = $(GNUSTEP_BUILD_DIR)/$(FRAMEWORK_VERSION_DIR_NAME)
# This is not doing much at the moment, but at least is defining
# This is not doing much at the moment, it is only defining
# HEADER_FILES, HEADER_FILES_DIR and HEADER_FILES_INSTALL_DIR in the
# standard way. NB: If HEADER_FILES is empty, HEADER_FILES_DIR and
# HEADER_FILES_INSTALL_DIR are going to be undefined!
# standard way. Please note that HEADER_FILES might be empty even if
# we have headers in subprojects that we need to manage and install.
# So we assume by default that we have some headers even if
# HEADER_FILES is empty.
include $(GNUSTEP_MAKEFILES)/Instance/Shared/headers.make
# FIXME - do we really want to link the framework against all libs ?
@ -275,14 +277,12 @@ build-framework-dirs:: $(DERIVED_SOURCES_DIR) \
$(RM_LN_S) Headers; \
$(LN_S) Versions/Current/Headers Headers; \
fi$(END_ECHO)
ifneq ($(HEADER_FILES),)
$(ECHO_NOTHING)cd $(DERIVED_SOURCES_DIR); \
if [ ! -h "$(HEADER_FILES_INSTALL_DIR)" ]; then \
$(RM_LN_S) ./$(HEADER_FILES_INSTALL_DIR); \
$(LN_S) ../$(FRAMEWORK_DIR_NAME)/Headers \
./$(HEADER_FILES_INSTALL_DIR); \
fi$(END_ECHO)
endif
$(FRAMEWORK_LIBRARY_DIR):
$(ECHO_CREATING)$(MKDIRS) $@$(END_ECHO)
@ -487,15 +487,13 @@ ifeq ($(strip),yes)
$(ECHO_STRIPPING)$(STRIP) $(FRAMEWORK_INSTALL_DIR)/$(FRAMEWORK_FILE_NAME)$(END_ECHO)
endif
$(ECHO_INSTALLING_HEADERS)cd $(GNUSTEP_HEADERS); \
if [ "$(HEADER_FILES)" != "" ]; then \
$(RM_LN_S) $(HEADER_FILES_INSTALL_DIR); \
$(LN_S) `$(REL_PATH_SCRIPT) $(GNUSTEP_HEADERS) $(FRAMEWORK_INSTALL_DIR)/$(FRAMEWORK_DIR_NAME)/Headers` $(HEADER_FILES_INSTALL_DIR); \
fi;$(END_ECHO)
$(RM_LN_S) $(HEADER_FILES_INSTALL_DIR); \
$(LN_S) `$(REL_PATH_SCRIPT) $(GNUSTEP_HEADERS) $(FRAMEWORK_INSTALL_DIR)/$(FRAMEWORK_DIR_NAME)/Headers` $(HEADER_FILES_INSTALL_DIR); \
$(END_ECHO)
ifneq ($(CHOWN_TO),)
$(ECHO_CHOWNING)cd $(GNUSTEP_HEADERS); \
if [ "$(HEADER_FILES)" != "" ]; then \
$(CHOWN) $(CHOWN_TO) $(HEADER_FILES_INSTALL_DIR); \
fi$(END_ECHO)
$(CHOWN) $(CHOWN_TO) $(HEADER_FILES_INSTALL_DIR); \
$(END_ECHO)
endif
$(ECHO_NOTHING)cd $(GNUSTEP_LIBRARIES)/$(GNUSTEP_TARGET_LDIR); \
$(RM_LN_S) $(FRAMEWORK_LIBRARY_FILE); \
@ -546,20 +544,18 @@ ifeq ($(strip),yes)
$(ECHO_STRIPPING)$(STRIP) $(FRAMEWORK_INSTALL_DIR)/$(FRAMEWORK_FILE_NAME)$(END_ECHO)
endif
$(ECHO_INSTALLING_HEADERS)cd $(GNUSTEP_HEADERS); \
if [ "$(HEADER_FILES)" != "" ]; then \
if test -d "$(HEADER_FILES_INSTALL_DIR)"; then \
rm -Rf $(HEADER_FILES_INSTALL_DIR); \
fi; \
$(MKINSTALLDIRS) $(HEADER_FILES_INSTALL_DIR); \
cd $(FRAMEWORK_INSTALL_DIR)/$(FRAMEWORK_VERSION_DIR_NAME)/Headers ; \
$(TAR) cfX - $(GNUSTEP_MAKEFILES)/tar-exclude-list . | (cd $(GNUSTEP_HEADERS)/$(HEADER_FILES_INSTALL_DIR); \
$(TAR) xf - ); \
fi;$(END_ECHO)
if test -d "$(HEADER_FILES_INSTALL_DIR)"; then \
rm -Rf $(HEADER_FILES_INSTALL_DIR); \
fi; \
$(MKINSTALLDIRS) $(HEADER_FILES_INSTALL_DIR); \
cd $(FRAMEWORK_INSTALL_DIR)/$(FRAMEWORK_VERSION_DIR_NAME)/Headers ; \
$(TAR) cfX - $(GNUSTEP_MAKEFILES)/tar-exclude-list . | (cd $(GNUSTEP_HEADERS)/$(HEADER_FILES_INSTALL_DIR); \
$(TAR) xf - ); \
$(END_ECHO)
ifneq ($(CHOWN_TO),)
$(ECHO_CHOWNING)cd $(GNUSTEP_HEADERS); \
if [ "$(HEADER_FILES)" != "" ]; then \
$(CHOWN) -R $(CHOWN_TO) $(HEADER_FILES_INSTALL_DIR); \
fi$(END_ECHO)
$(CHOWN) -R $(CHOWN_TO) $(HEADER_FILES_INSTALL_DIR); \
$(END_ECHO)
endif
$(ECHO_NOTHING)cd $(DLL_INSTALLATION_DIR); \
if test -r "$(FRAMEWORK_FILE_NAME)"; then \
@ -595,9 +591,7 @@ internal-framework-uninstall_::
fi; \
done; \
fi; \
if [ -n "$(HEADER_FILES)" ]; then \
$(RM_LN_S) $(GNUSTEP_HEADERS)/$(HEADER_FILES_INSTALL_DIR) ; \
fi; \
$(RM_LN_S) $(GNUSTEP_HEADERS)/$(HEADER_FILES_INSTALL_DIR) ; \
rm -rf $(FRAMEWORK_INSTALL_DIR)/$(FRAMEWORK_DIR_NAME) ; \
cd $(GNUSTEP_LIBRARIES)/$(GNUSTEP_TARGET_LDIR); \
$(RM_LN_S) $(FRAMEWORK_LIBRARY_FILE); \