From cfb13cc185cae4f39924721a81b8891ac3419c32 Mon Sep 17 00:00:00 2001 From: fedor Date: Wed, 17 Oct 2001 03:53:55 +0000 Subject: [PATCH] Fix static linking git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gui/trunk@11167 72102866-910b-0410-8b05-ffd578937521 --- ChangeLog | 14 ++++++++++++++ GNUmakefile.postamble | 2 +- Source/GNUmakefile | 1 + Source/NSMenuItemCell.m | 9 ++++++--- Source/externs.m | 11 +++++++++++ TextConverters/RTF/GNUmakefile | 7 +++++++ 6 files changed, 40 insertions(+), 4 deletions(-) diff --git a/ChangeLog b/ChangeLog index b2d8a3166..642bf56af 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,17 @@ +2001-10-16 Adam Fedor + + * GNUmakefile.postamble (before-install): Remove extra / + * TextConverters/RTF/GNUmakefile: Add BUNDLE_LIBS on mingw32/cygwin + (bug report from stephen@brandonitconsulting.co.uk). + + * Source/NSMenuItemCell.m (calcSize): Check that images exist + before asking for their size (assigning structs from nil objects + crashes Solaris). + + * Make sure classes are linked in when shared=no + * Source/linking.m: New file. + * Source/extern.m (__objc_gui_force_linking): Linking function. + 2001-10-16 Pierre-Yves Rivaille * Source/NSTableView.m ([selectColumn:byExtendingSelection]): diff --git a/GNUmakefile.postamble b/GNUmakefile.postamble index 15f504f42..afcda2a19 100644 --- a/GNUmakefile.postamble +++ b/GNUmakefile.postamble @@ -51,7 +51,7 @@ $(INSTALL_ROOT_DIR)$(GNUSTEP_MAKEFILES)/Additional: # Things to do before installing before-install:: $(INSTALL_ROOT_DIR)$(GNUSTEP_MAKEFILES)/Additional $(INSTALL_DATA) gui.make \ - $(INSTALL_ROOT_DIR)/$(GNUSTEP_MAKEFILES)/Additional/gui.make + $(INSTALL_ROOT_DIR)$(GNUSTEP_MAKEFILES)/Additional/gui.make # Things to do after installing # after-install:: diff --git a/Source/GNUmakefile b/Source/GNUmakefile index 159f7df80..0d685326e 100644 --- a/Source/GNUmakefile +++ b/Source/GNUmakefile @@ -152,6 +152,7 @@ GSTrackingRect.m \ GSServicesManager.m \ tiff.m \ externs.m \ +linking.m \ GSFontInfo.m \ GSTable.m \ GSHbox.m \ diff --git a/Source/NSMenuItemCell.m b/Source/NSMenuItemCell.m index 23631f7cb..a32fb69e9 100644 --- a/Source/NSMenuItemCell.m +++ b/Source/NSMenuItemCell.m @@ -129,20 +129,23 @@ static NSImage *arrowImageH = nil; if ([_menuItem changesState]) { // NSOnState - componentSize = [[_menuItem onStateImage] size]; + if ([_menuItem onStateImage]) + componentSize = [[_menuItem onStateImage] size]; _stateImageWidth = componentSize.width; if (componentSize.height > neededMenuItemHeight) neededMenuItemHeight = componentSize.height; // NSOffState - componentSize = [[_menuItem offStateImage] size]; + if ([_menuItem offStateImage]) + componentSize = [[_menuItem offStateImage] size]; if (componentSize.width > _stateImageWidth) _stateImageWidth = componentSize.width; if (componentSize.height > neededMenuItemHeight) neededMenuItemHeight = componentSize.height; // NSMixedState - componentSize = [[_menuItem mixedStateImage] size]; + if ([_menuItem mixedStateImage]) + componentSize = [[_menuItem mixedStateImage] size]; if (componentSize.width > _stateImageWidth) _stateImageWidth = componentSize.width; if (componentSize.height > neededMenuItemHeight) diff --git a/Source/externs.m b/Source/externs.m index 4b5a5ece9..0f58812f4 100644 --- a/Source/externs.m +++ b/Source/externs.m @@ -421,3 +421,14 @@ const NSWindowDepth NSTwentyFourBitRGBDepth = 520; // 1000001000 RGB | 8bps const NSWindowDepth _GSWindowDepths[7] = { 258, 264, 514, 516, 517, 520, 0 }; /* End of color functions externs */ + +extern void __objc_gui_force_linking (void); + +void +__objc_gui_force_linking (void) +{ + extern void __objc_gui_linking (void); + __objc_gui_linking (); +} + + diff --git a/TextConverters/RTF/GNUmakefile b/TextConverters/RTF/GNUmakefile index 3b600c1d9..0b5a66dcf 100644 --- a/TextConverters/RTF/GNUmakefile +++ b/TextConverters/RTF/GNUmakefile @@ -33,6 +33,13 @@ RTFConverter_C_FILES = \ RTFConverter_PRINCIPAL_CLASS = RTFConsumer +ifeq ($(GNUSTEP_TARGET_OS),mingw32) +RTFConverter_BUNDLE_LIBS += -lgnustep-gui $(FND_LIBS) $(OBJC_LIBS) +endif +ifeq ($(GNUSTEP_TARGET_OS),cygwin) +RTFConverter_BUNDLE_LIBS += -lgnustep-gui $(FND_LIBS) $(OBJC_LIBS) +endif + -include GNUmakefile.preamble include $(GNUSTEP_MAKEFILES)/bundle.make