libs-base/Source/GNUmakefile

674 lines
15 KiB
Text
Raw Permalink Normal View History

#
# src makefile for the GNUstep Base Library
#
# Copyright (C) 1997 Free Software Foundation, Inc.
#
# Written by: Scott Christley <scottc@net-community.com>
#
# This file is part of the GNUstep Base Library.
#
# This library is free software; you can redistribute it and/or
# modify it under the terms of the GNU Lesser General Public
# License as published by the Free Software Foundation; either
# version 2 of the License, or (at your option) any later version.
#
# This library is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
# Library General Public License for more details.
#
# You should have received a copy of the GNU Lesser General Public
# License along with this library; if not, write to the Free
# Software Foundation, Inc., 31 Milk Street #960789 Boston, MA 02196 USA.
#
ifeq ($(GNUSTEP_MAKEFILES),)
GNUSTEP_MAKEFILES := $(shell gnustep-config --variable=GNUSTEP_MAKEFILES 2>/dev/null)
ifeq ($(GNUSTEP_MAKEFILES),)
$(warning )
$(warning Unable to obtain GNUSTEP_MAKEFILES setting from gnustep-config!)
$(warning Perhaps gnustep-make is not properly installed,)
$(warning so gnustep-config is not in your PATH.)
$(warning )
$(warning Your PATH is currently $(PATH))
$(warning )
endif
endif
ifeq ($(GNUSTEP_MAKEFILES),)
$(error You need to set GNUSTEP_MAKEFILES before compiling!)
endif
PACKAGE_NAME = gnustep-base
GNUSTEP_LOCAL_ADDITIONAL_MAKEFILES=../base.make
include $(GNUSTEP_MAKEFILES)/common.make
include ../Version
include ../config.mak
# Interface version changes with each minor release
libgnustep-base_INTERFACE_VERSION=$(MAJOR_VERSION).$(MINOR_VERSION)
libgnustep-baseadd_INTERFACE_VERSION=$(MAJOR_VERSION).$(MINOR_VERSION)
PACKAGE_NAME = gnustep-base
# The library to be compiled
LIBRARY_NAME=
ifeq ($(add),yes)
LIBRARY_NAME += libgnustep-baseadd
endif
ifneq ($(base),no)
LIBRARY_NAME += libgnustep-base
endif
OBJECTIVEC2_HEADERS =
ifeq ($(OBJC2RUNTIME),0)
libgnustep-base_SUBPROJECTS = ObjectiveC2
OBJECTIVEC2_HEADERS += \
Availability.h blocks_runtime.h capabilities.h runtime.h
else
ifeq ($(HAVE_BLOCKS),0)
libgnustep-base_SUBPROJECTS = ObjectiveC2
OBJECTIVEC2_HEADERS += blocks_runtime.h
endif
endif
libgnustep-base_SUBPROJECTS += Additions
libgnustep-baseadd_SUBPROJECTS += Additions
ifeq ($(GNUSTEP_TARGET_OS), mingw32)
libgnustep-base_SUBPROJECTS += win32
else ifeq ($(GNUSTEP_TARGET_OS), mingw64)
libgnustep-base_SUBPROJECTS += win32
else ifeq ($(GNUSTEP_TARGET_OS), windows)
libgnustep-base_SUBPROJECTS += win32
else
libgnustep-base_SUBPROJECTS += unix
endif
DEFS+= -DGNUSTEP_TARGET_DIR=\"$(GNUSTEP_TARGET_DIR)\" \
-DGNUSTEP_TARGET_CPU=\"$(GNUSTEP_TARGET_CPU)\" \
-DGNUSTEP_TARGET_OS=\"$(GNUSTEP_TARGET_OS)\" \
-DGNUSTEP_IS_FLATTENED=\"$(GNUSTEP_IS_FLATTENED)\" \
-DLIBRARY_COMBO=\"$(LIBRARY_COMBO)\" \
-DGNUSTEP_BASE_INTERNAL=1
# The GNU source files
GNU_MFILES = \
GSLocale.m \
preface.m
ifeq ($(findstring openbsd, $(GNUSTEP_TARGET_OS)), openbsd)
OBJC_LIBS += -pthread
endif
ifeq ($(GNUSTEP_TARGET_OS), mingw32)
GNU_MFILES += libgnustep-base-entry.m
else ifeq ($(GNUSTEP_TARGET_OS), mingw64)
GNU_MFILES += libgnustep-base-entry.m
else ifeq ($(GNUSTEP_TARGET_OS), windows)
GNU_MFILES += libgnustep-base-entry.m
endif
GNU_OTHER_SRCFILES = \
win32-entry.m \
win32-def.top \
libgnustep-base.def
GNUSTEPBASE_HEADERS = \
GCObject.h \
GSBlocks.h \
GSVersionMacros.h \
GSObjCRuntime.h \
GSUnion.h \
GSIArray.h \
GSIMap.h \
GSFunctions.h \
GSLocale.h \
GSMime.h \
GSTLS.h \
GSXML.h \
NSArray+GNUstepBase.h \
NSAttributedString+GNUstepBase.h \
NSBundle+GNUstepBase.h \
NSCalendarDate+GNUstepBase.h \
NSData+GNUstepBase.h \
NSDebug+GNUstepBase.h \
NSFileHandle+GNUstepBase.h \
NSHashTable+GNUstepBase.h \
NSMutableString+GNUstepBase.h \
NSNetServices+GNUstepBase.h \
NSNumber+GNUstepBase.h \
NSObject+GNUstepBase.h \
NSProcessInfo+GNUstepBase.h \
NSStream+GNUstepBase.h \
NSString+GNUstepBase.h \
NSTask+GNUstepBase.h \
NSThread+GNUstepBase.h \
NSURL+GNUstepBase.h \
Unicode.h \
GNUstep.h \
Additions.h
# GNUStep source files
BASE_MFILES = \
CXXException.m\
GSArray.m \
GSAttributedString.m \
GSBlocks.m \
GSConcreteValue.m \
GSCountedSet.m \
GSDictionary.m \
GSFTPURLHandle.m \
GSFormat.m \
GSHTTPAuthentication.m \
GSHTTPURLHandle.m \
GSICUString.m \
2019-05-20 05:43:06 +00:00
GSOrderedSet.m \
GSPrivateHash.m \
GSQuickSort.m \
GSRunLoopWatcher.m \
GSSet.m \
GSShellSort.m \
GSSocketStream.m \
GSStream.m \
GSString.m \
GSTimSort.m \
GSTLS.m \
GSValue.m \
GSSocksParser/GSSocksParser.m \
GSSocksParser/GSSocksParserPrivate.m \
GSSocksParser/GSSocks4Parser.m \
GSSocksParser/GSSocks5Parser.m \
NSAffineTransform.m \
2019-11-01 19:42:59 +00:00
NSAppleEventDescriptor.m \
NSAppleEventManager.m \
2019-09-26 13:52:02 +00:00
NSAppleScript.m \
NSArchiver.m \
NSArray.m \
NSAssertionHandler.m \
NSAttributedString.m \
NSAutoreleasePool.m \
2019-10-26 11:45:19 +00:00
NSBackgroundActivityScheduler.m \
NSBundle.m \
2019-07-14 05:28:42 +00:00
NSByteCountFormatter.m \
NSCache.m \
NSCachedURLResponse.m \
NSCalendar.m \
NSCalendarDate.m \
NSCallBacks.m \
NSCharacterSet.m \
NSClassDescription.m \
NSCoder.m \
NSCopyObject.m \
NSCountedSet.m \
NSConcreteHashTable.m \
NSConcreteMapTable.m \
NSConnection.m \
NSData.m \
NSDate.m \
2019-11-07 00:04:41 +00:00
NSDateComponentsFormatter.m \
NSDateFormatter.m \
2019-10-12 16:42:18 +00:00
NSDateInterval.m \
NSDateIntervalFormatter.m \
NSDebug.m \
NSDecimal.m \
NSDecimalNumber.m \
NSDictionary.m \
NSDistantObject.m \
NSDistributedLock.m \
NSDistributedNotificationCenter.m \
2019-10-09 11:32:30 +00:00
NSEnergyFormatter.m \
NSEnumerator.m \
NSError.m \
NSException.m \
2019-11-10 21:48:48 +00:00
NSExtensionContext.m \
NSExtensionItem.m \
NSFileCoordinator.m \
NSFileHandle.m \
NSFileManager.m \
NSFileVersion.m \
2019-09-08 21:34:51 +00:00
NSFileWrapper.m \
NSFormatter.m \
NSGarbageCollector.m \
NSGeometry.m \
NSHashTable.m \
2019-11-01 19:42:59 +00:00
NSHFSFileTypes.m \
NSHost.m \
NSHTTPCookie.m \
NSHTTPCookieStorage.m \
NSIndexPath.m \
NSIndexSet.m \
NSInvocation.m \
NSInvocationOperation.m \
2019-10-29 16:17:19 +00:00
NSISO8601DateFormatter.m \
2019-11-10 21:48:48 +00:00
NSItemProvider.m \
NSItemProviderReadingWriting.m \
NSJSONSerialization.m \
NSKeyedArchiver.m \
NSKeyedUnarchiver.m \
NSKeyValueCoding.m \
2019-10-09 11:32:30 +00:00
NSLengthFormatter.m \
NSLinguisticTagger.m \
NSLocale.m \
NSLock.m \
NSLog.m \
NSMapTable.m \
2019-09-30 20:06:11 +00:00
NSMassFormatter.m \
NSMeasurementFormatter.m \
NSMeasurement.m \
NSMetadata.m \
2019-10-29 05:54:05 +00:00
NSMetadataAttributes.m \
NSMethodSignature.m \
NSNetServices.m \
NSNotification.m \
NSNotificationCenter.m \
NSNotificationQueue.m \
NSNull.m \
NSNumber.m \
NSNumberFormatter.m \
NSObjCRuntime.m \
NSObject.m \
2019-11-01 19:42:59 +00:00
NSObjectScripting.m \
NSObject+NSComparisonMethods.m \
NSOperation.m \
2019-05-18 00:17:10 +00:00
NSOrderedSet.m \
NSOrthography.m \
NSPage.m \
NSPathUtilities.m \
2019-09-15 15:17:26 +00:00
NSPersonNameComponents.m \
2019-09-16 02:17:28 +00:00
NSPersonNameComponentsFormatter.m \
NSPipe.m \
NSPointerArray.m \
NSPointerFunctions.m \
NSConcretePointerFunctions.m \
NSPort.m \
NSPortCoder.m \
NSPortMessage.m \
NSPortNameServer.m \
NSPredicate.m \
NSProcessInfo.m \
2019-07-30 02:32:55 +00:00
NSProgress.m \
NSPropertyList.m \
NSProtocolChecker.m \
NSProxy.m \
NSRange.m \
Added implementation of NSRegularExpression, from iOS 4 Foundation. This class is a thin wrapper around libicu regular expressions, so if we don't have libicu we simply don't compile it at all. This will give people a linker failure, rather than a nonfunctional class if they try to use GNUstep without ICU with code that requires it. The Apple documentation says that this class has a primitive method that takes a block as an argument and that this method is called by others, so subclasses can replace that block method without touching the convenience methods. We mimic this behaviour when compiling with block, but when compiling without them it's a problem. The current code contains some ugly hacks that will work in normal usage but break with subclassing when not compiling with blocks. This commit also includes a partial implementation of NSTextCheckingResult, implementing the subset of its functionality required for NSRegularExpression to work. It also includes numerous fixes to GSICUString. This is heavily used by NSRegularExpression, to avoid copying strings when mapping between UText for libicu and NSString for GNUstep. Note: I don't have a copy of iOS anywhere to test this against, so it's entirely possible that there are significant discrepancies between this implementation of NSRegularExpression and the iOS version. This version should function exactly as the iOS one is described as functioning, but I think we've all seen that Apple documentation refers more to hopes than facts. Any testing that someone who does have an ip{hone,od,ad} can do is very welcome. git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@31635 72102866-910b-0410-8b05-ffd578937521
2010-11-19 22:06:18 +00:00
NSRegularExpression.m\
NSRunLoop.m \
NSScanner.m \
2019-09-26 05:39:24 +00:00
NSScriptClassDescription.m \
NSScriptCoercionHandler.m \
NSScriptCommand.m \
NSScriptCommandDescription.m \
NSScriptExecutionContext.m \
NSScriptKeyValueCoding.m \
NSScriptObjectSpecifiers.m \
NSScriptStandardSuiteCommands.m \
NSScriptSuiteRegistry.m \
2019-09-30 20:06:11 +00:00
NSUnit.m \
2019-11-01 19:42:59 +00:00
NSUserActivity.m \
2019-09-26 05:39:24 +00:00
NSUserScriptTask.m \
NSSerializer.m \
NSSet.m \
NSSocketPort.m \
NSSocketPortNameServer.m \
NSSortDescriptor.m \
NSSpellServer.m \
NSString.m \
NSTask.m \
NSThread.m \
NSTimer.m \
NSTimeZone.m \
2019-07-03 08:36:24 +00:00
NSUbiquitousKeyValueStore.m \
NSUnarchiver.m \
NSUndoManager.m \
NSURL.m \
NSURLAuthenticationChallenge.m \
NSURLCache.m \
NSURLCredential.m \
NSURLConnection.m \
NSURLCredentialStorage.m \
NSURLDownload.m \
NSURLProtectionSpace.m \
NSURLProtocol.m \
NSURLRequest.m \
NSURLResponse.m \
Added implementation of NSRegularExpression, from iOS 4 Foundation. This class is a thin wrapper around libicu regular expressions, so if we don't have libicu we simply don't compile it at all. This will give people a linker failure, rather than a nonfunctional class if they try to use GNUstep without ICU with code that requires it. The Apple documentation says that this class has a primitive method that takes a block as an argument and that this method is called by others, so subclasses can replace that block method without touching the convenience methods. We mimic this behaviour when compiling with block, but when compiling without them it's a problem. The current code contains some ugly hacks that will work in normal usage but break with subclassing when not compiling with blocks. This commit also includes a partial implementation of NSTextCheckingResult, implementing the subset of its functionality required for NSRegularExpression to work. It also includes numerous fixes to GSICUString. This is heavily used by NSRegularExpression, to avoid copying strings when mapping between UText for libicu and NSString for GNUstep. Note: I don't have a copy of iOS anywhere to test this against, so it's entirely possible that there are significant discrepancies between this implementation of NSRegularExpression and the iOS version. This version should function exactly as the iOS one is described as functioning, but I think we've all seen that Apple documentation refers more to hopes than facts. Any testing that someone who does have an ip{hone,od,ad} can do is very welcome. git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@31635 72102866-910b-0410-8b05-ffd578937521
2010-11-19 22:06:18 +00:00
NSTextCheckingResult.m\
NSURLHandle.m \
NSUserDefaults.m \
NSUserNotification.m \
NSUUID.m \
NSValue.m \
NSValueTransformer.m \
NSXMLDocument.m \
NSXMLDTD.m \
NSXMLDTDNode.m \
NSXMLElement.m \
NSXMLNode.m \
NSXMLParser.m \
2019-11-13 09:17:00 +00:00
NSXPCConnection.m \
NSZone.m \
externs.m \
objc-load.m
Initial port of WinObjC's KVO implementation to GNUstep (#420) * GSAtomic: Add prefix to macro definitions * NSKVOSupport: Import * NSKVOSupport: Add test cases * NSKVOSwizzling: Ugly C Rewrite * NSKeyValueObserving: Use old implementation as fallback * NSKeyValueObserving: Rename TypeEncodingCases header * NSKVOSupport: Fix new objects not being added to NSKeyValueChangeNew set on set mutation * NSKeyValueMutableSet: Fix will and didChange notifications for set operations * NSKeyValueMutableSet: Document Accessor Search Patterns * NSKVOSupport: Add toMany test * NSKeyValueCoding: Change notifications when changing value via setValue:forKey: * NSKVOSupport: Add more tests * NSKVOSupport: Do not wrap block in try/finally to avoid crash in windows * NSKVOSwizzling: use _alloca on Windows * NSKVOSupport: Do not autorelease newWithObservee: * NSKVOSupport: Do not leak Observee and TestFacade objects * Improve runtime detection in makefile * Add file extension of source file in GNUMakefile * NSKVOSupport: Remove @status comments * NSKVOSupport: Implement private notify method * NSUserDefaults: KVO Support and fix macOS incompatibilities * NSKeyValueObserving: Set old to null if nil * NSKeyValueObserving: Remove cached new value * NSMethodSignature: Add signature cache * NSKVOSupport: Remove ObjC2 features and mark tests failing on GCC as hopeful * Call class method instead of private _keyPathsForValuesAffectingValueForKey * Move _keyPathsForValuesAffectingValueForKey body into class method and statically construct empty NSSet * NSUserDefaults: Change notification should contain old value from other domains aswell * NSUserDefaults: Fetch new value from all domains * NSKVOInternal: Fixup filename in header * NSUserDefaults: Go through search list instead of only one domain in KVO change * Making indentation a bit less worse * Add NSUserDefaults KVO tests * NSKVOSupport: NSUserDefaults test small fixes * Add autoreleasepool * NSUserDefaults: Only emit change notifications if value changed * Avoid compiler warnings and tidy some of the whitespace/formatting --------- Co-authored-by: Frederik Seiffert <frederik@algoriddim.com> Co-authored-by: rfm <richardfrithmacdonald@gmail.com> Co-authored-by: rfm <rfm@gnu.org>
2024-11-10 16:05:23 +00:00
# We have two implementations for Key Value Observing.
# One highly-optimised one that depends on libobjc2
# and the original implementation.
ifeq ($(GNUSTEP_BASE_HAVE_NEWKVO), 1)
Initial port of WinObjC's KVO implementation to GNUstep (#420) * GSAtomic: Add prefix to macro definitions * NSKVOSupport: Import * NSKVOSupport: Add test cases * NSKVOSwizzling: Ugly C Rewrite * NSKeyValueObserving: Use old implementation as fallback * NSKeyValueObserving: Rename TypeEncodingCases header * NSKVOSupport: Fix new objects not being added to NSKeyValueChangeNew set on set mutation * NSKeyValueMutableSet: Fix will and didChange notifications for set operations * NSKeyValueMutableSet: Document Accessor Search Patterns * NSKVOSupport: Add toMany test * NSKeyValueCoding: Change notifications when changing value via setValue:forKey: * NSKVOSupport: Add more tests * NSKVOSupport: Do not wrap block in try/finally to avoid crash in windows * NSKVOSwizzling: use _alloca on Windows * NSKVOSupport: Do not autorelease newWithObservee: * NSKVOSupport: Do not leak Observee and TestFacade objects * Improve runtime detection in makefile * Add file extension of source file in GNUMakefile * NSKVOSupport: Remove @status comments * NSKVOSupport: Implement private notify method * NSUserDefaults: KVO Support and fix macOS incompatibilities * NSKeyValueObserving: Set old to null if nil * NSKeyValueObserving: Remove cached new value * NSMethodSignature: Add signature cache * NSKVOSupport: Remove ObjC2 features and mark tests failing on GCC as hopeful * Call class method instead of private _keyPathsForValuesAffectingValueForKey * Move _keyPathsForValuesAffectingValueForKey body into class method and statically construct empty NSSet * NSUserDefaults: Change notification should contain old value from other domains aswell * NSUserDefaults: Fetch new value from all domains * NSKVOInternal: Fixup filename in header * NSUserDefaults: Go through search list instead of only one domain in KVO change * Making indentation a bit less worse * Add NSUserDefaults KVO tests * NSKVOSupport: NSUserDefaults test small fixes * Add autoreleasepool * NSUserDefaults: Only emit change notifications if value changed * Avoid compiler warnings and tidy some of the whitespace/formatting --------- Co-authored-by: Frederik Seiffert <frederik@algoriddim.com> Co-authored-by: rfm <richardfrithmacdonald@gmail.com> Co-authored-by: rfm <rfm@gnu.org>
2024-11-10 16:05:23 +00:00
BASE_MFILES += \
NSKVOSupport.m \
NSKVOSwizzling.m
else
BASE_MFILES += \
NSKeyValueObserving.m
endif
ifeq ($(OBJC_RUNTIME_LIB), ng)
BASE_MFILES += \
NSKeyValueCoding+Caching.m
endif
ifneq ($(GNUSTEP_TARGET_OS), mingw32)
ifneq ($(GNUSTEP_TARGET_OS), mingw64)
ifneq ($(GNUSTEP_TARGET_OS), windows)
BASE_MFILES += \
GSFileHandle.m \
NSMessagePort.m \
NSMessagePortNameServer.m
endif
endif
endif
ifeq ($(HAVE_BLOCKS), 1)
ifeq ($(GNUSTEP_BASE_HAVE_LIBDISPATCH), 1)
ifeq ($(GNUSTEP_BASE_HAVE_LIBCURL), 1)
BASE_MFILES += \
NSURLSession.m \
NSURLSessionTask.m \
NSURLSessionConfiguration.m
endif
endif
endif
ifeq ($(GNUSTEP_BASE_HAVE_MDNS), 1)
BASE_MFILES += \
GSMDNSNetServices.m
endif
ifeq ($(GNUSTEP_BASE_HAVE_AVAHI), 1)
BASE_MFILES += \
GSAvahiNetService.m \
GSAvahiNetServiceBrowser.m \
GSAvahiClient.m \
GSAvahiRunLoopIntegration.m
endif
ifeq ($(WITH_FFI),libffi)
GNU_MFILES += cifframe.m
BASE_MFILES += GSFFIInvocation.m
endif
ifeq ($(WITH_FFI),ffcall)
GNU_MFILES += callframe.m
BASE_MFILES += GSFFCallInvocation.m
endif
BASE_OTHER_SRCFILES = \
GSConcreteValueTemplate.m \
GSTemplateValue.m \
dld-load.h \
hpux-load.h \
null-load.h \
simple-load.h \
win32-load.h \
NSCallBacks.h \
tzfile.h
# Definitions for toll-free bridging of known structures
# such as NSRect, NSPoint, or NSSize.
COREFOUNDATION_HEADERS = \
CFCGTypes.h
FOUNDATION_HEADERS = \
Foundation.h \
FoundationErrors.h \
FoundationLegacySwiftCompatibility.h \
NSAffineTransform.h \
2019-11-01 19:42:59 +00:00
NSAppleEventDescriptor.h \
NSAppleEventManager.h \
2019-09-26 13:52:02 +00:00
NSAppleScript.h \
NSArchiver.h \
NSArray.h \
NSAttributedString.h \
NSAutoreleasePool.h \
2019-10-26 11:45:19 +00:00
NSBackgroundActivityScheduler.h \
NSBundle.h \
2019-07-14 05:28:42 +00:00
NSByteCountFormatter.h \
NSByteOrder.h \
NSCache.h\
NSCalendar.h \
NSCalendarDate.h \
NSCharacterSet.h \
NSClassDescription.h \
NSCoder.h \
NSComparisonPredicate.h \
NSCompoundPredicate.h \
NSConnection.h \
NSData.h \
2019-11-07 00:04:41 +00:00
NSDateComponentsFormatter.h \
NSDateFormatter.h \
2019-10-12 16:42:18 +00:00
NSDateInterval.h \
NSDateIntervalFormatter.h \
NSDate.h \
NSDebug.h \
NSDecimal.h \
NSDecimalNumber.h \
NSDictionary.h \
NSDistantObject.h \
NSDistributedLock.h \
NSDistributedNotificationCenter.h \
2019-10-09 11:32:30 +00:00
NSEnergyFormatter.h \
NSEnumerator.h \
NSError.h \
NSErrorRecoveryAttempting.h \
NSException.h \
2019-11-10 21:48:48 +00:00
NSExtensionContext.h \
NSExtensionItem.h \
NSExtensionRequestHandling.h \
NSExpression.h \
NSFileCoordinator.h \
NSFileHandle.h \
NSFileManager.h \
NSFilePresenter.h \
NSFileVersion.h \
2019-09-08 21:34:51 +00:00
NSFileWrapper.h \
NSFormatter.h \
NSGarbageCollector.h \
NSGeometry.h \
NSHashTable.h \
2019-11-01 19:42:59 +00:00
NSHFSFileTypes.h \
NSHost.h \
NSHTTPCookie.h \
NSHTTPCookieStorage.h \
NSIndexPath.h \
NSIndexSet.h \
NSInvocation.h \
NSInvocationOperation.h \
2019-10-29 16:17:19 +00:00
NSISO8601DateFormatter.h \
2019-11-10 21:48:48 +00:00
NSItemProvider.h \
NSItemProviderReadingWriting.h \
NSJSONSerialization.h \
NSKeyedArchiver.h \
NSKeyValueCoding.h \
NSKeyValueObserving.h \
2019-10-25 01:01:17 +00:00
NSLengthFormatter.h \
NSLinguisticTagger.h \
NSLocale.h \
NSLock.h \
NSMapTable.h \
2019-09-30 20:06:11 +00:00
NSMassFormatter.h \
NSMeasurementFormatter.h \
NSMeasurement.h \
NSMetadata.h \
2019-10-29 05:54:05 +00:00
NSMetadataAttributes.h \
NSMethodSignature.h \
NSNetServices.h \
NSNotification.h \
NSNotificationQueue.h \
NSNull.h \
NSNumberFormatter.h \
NSObjCRuntime.h \
NSObject.h \
2019-11-01 19:42:59 +00:00
NSObjectScripting.h \
NSOperation.h \
2019-05-18 00:17:10 +00:00
NSOrderedSet.h \
NSOrthography.h \
NSPathUtilities.h \
2019-09-15 15:17:26 +00:00
NSPersonNameComponents.h \
2019-09-16 02:17:28 +00:00
NSPersonNameComponentsFormatter.h \
NSPointerArray.h \
NSPointerFunctions.h \
NSPortCoder.h \
NSPort.h \
NSPortMessage.h \
NSPortNameServer.h \
NSPredicate.h \
NSProcessInfo.h \
2019-07-30 02:32:55 +00:00
NSProgress.h \
NSPropertyList.h \
NSProtocolChecker.h \
NSProxy.h \
NSRange.h \
Added implementation of NSRegularExpression, from iOS 4 Foundation. This class is a thin wrapper around libicu regular expressions, so if we don't have libicu we simply don't compile it at all. This will give people a linker failure, rather than a nonfunctional class if they try to use GNUstep without ICU with code that requires it. The Apple documentation says that this class has a primitive method that takes a block as an argument and that this method is called by others, so subclasses can replace that block method without touching the convenience methods. We mimic this behaviour when compiling with block, but when compiling without them it's a problem. The current code contains some ugly hacks that will work in normal usage but break with subclassing when not compiling with blocks. This commit also includes a partial implementation of NSTextCheckingResult, implementing the subset of its functionality required for NSRegularExpression to work. It also includes numerous fixes to GSICUString. This is heavily used by NSRegularExpression, to avoid copying strings when mapping between UText for libicu and NSString for GNUstep. Note: I don't have a copy of iOS anywhere to test this against, so it's entirely possible that there are significant discrepancies between this implementation of NSRegularExpression and the iOS version. This version should function exactly as the iOS one is described as functioning, but I think we've all seen that Apple documentation refers more to hopes than facts. Any testing that someone who does have an ip{hone,od,ad} can do is very welcome. git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@31635 72102866-910b-0410-8b05-ffd578937521
2010-11-19 22:06:18 +00:00
NSRegularExpression.h\
NSRunLoop.h \
NSScanner.h \
2019-09-26 05:39:24 +00:00
NSScriptClassDescription.h \
NSScriptCoercionHandler.h \
NSScriptCommand.h \
NSScriptCommandDescription.h \
NSScriptExecutionContext.h \
NSScriptKeyValueCoding.h \
NSScriptObjectSpecifiers.h \
NSScriptStandardSuiteCommands.h \
NSScriptSuiteRegistry.h \
2019-09-30 20:06:11 +00:00
NSUnit.h \
2019-11-01 19:42:59 +00:00
NSUserActivity.h \
2019-09-26 05:39:24 +00:00
NSUserScriptTask.h \
NSScriptWhoseTests.h \
NSSerialization.h \
NSSet.h \
NSSortDescriptor.h \
NSSpellServer.h \
NSStream.h \
NSString.h \
NSTask.h \
Added implementation of NSRegularExpression, from iOS 4 Foundation. This class is a thin wrapper around libicu regular expressions, so if we don't have libicu we simply don't compile it at all. This will give people a linker failure, rather than a nonfunctional class if they try to use GNUstep without ICU with code that requires it. The Apple documentation says that this class has a primitive method that takes a block as an argument and that this method is called by others, so subclasses can replace that block method without touching the convenience methods. We mimic this behaviour when compiling with block, but when compiling without them it's a problem. The current code contains some ugly hacks that will work in normal usage but break with subclassing when not compiling with blocks. This commit also includes a partial implementation of NSTextCheckingResult, implementing the subset of its functionality required for NSRegularExpression to work. It also includes numerous fixes to GSICUString. This is heavily used by NSRegularExpression, to avoid copying strings when mapping between UText for libicu and NSString for GNUstep. Note: I don't have a copy of iOS anywhere to test this against, so it's entirely possible that there are significant discrepancies between this implementation of NSRegularExpression and the iOS version. This version should function exactly as the iOS one is described as functioning, but I think we've all seen that Apple documentation refers more to hopes than facts. Any testing that someone who does have an ip{hone,od,ad} can do is very welcome. git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@31635 72102866-910b-0410-8b05-ffd578937521
2010-11-19 22:06:18 +00:00
NSTextCheckingResult.h\
NSThread.h \
NSTimer.h \
NSTimeZone.h \
2019-07-03 08:36:24 +00:00
NSUbiquitousKeyValueStore.h \
NSUndoManager.h \
NSURLAuthenticationChallenge.h \
NSURLCache.h \
NSURLConnection.h \
NSURLCredential.h \
NSURLCredentialStorage.h \
NSURLDownload.h \
NSURLError.h \
NSURL.h \
NSURLHandle.h \
NSURLProtectionSpace.h \
NSURLProtocol.h \
NSURLRequest.h \
NSURLResponse.h \
NSURLSession.h \
NSUserDefaults.h \
NSUserNotification.h \
NSUtilities.h \
NSUUID.h \
NSValue.h \
NSValueTransformer.h \
NSXMLDocument.h \
NSXMLDTD.h \
NSXMLDTDNode.h \
NSXMLElement.h \
NSXMLNode.h \
NSXMLNodeOptions.h \
NSXMLParser.h \
2019-11-13 09:17:00 +00:00
NSXPCConnection.h \
NSZone.h
HEADERS_INSTALL = \
$(OBJECTIVEC2_HEADERS) \
$(GNUSTEPBASE_HEADERS) \
$(FOUNDATION_HEADERS) \
$(COREFOUNDATION_HEADERS)
GENERATED_HFILES = \
dynamic-load.h \
$(GNUSTEP_TARGET_DIR)/config.h \
$(GNUSTEP_TARGET_DIR)/GNUstepBase/GSConfig.h
ifeq ($(HAVE_INET_PTON), no)
GNU_MFILES += inet_pton.m
endif
ifeq ($(HAVE_INET_NTOP), no)
GNU_MFILES += inet_ntop.m
endif
# The Objective-C source files to be compiled
libgnustep-base_OBJC_FILES = $(GNU_MFILES) \
$(BASE_MFILES)
libgnustep-base_C_FILES = $(GNU_CFILES)
# Extra DLL exports file
libgnustep-base_DLL_DEF = libgnustep-base.def
libgnustep-base_HEADER_FILES_DIR = $(HEADER_DIR_FND)
libgnustep-base_HEADER_FILES_INSTALL_DIR = /Foundation
libgnustep-base_HEADER_FILES = $(FOUNDATION_HEADERS)
# Resources
RESOURCE_SET_NAME = libbase-resources
# This is for gnustep-make >= 14-02-2007
libbase-resources_INSTALL_DIR = $(GNUSTEP_LIBRARY)/Libraries/gnustep-base/Versions/$(libgnustep-base_INTERFACE_VERSION)/Resources
# This is kept temporarily for gnustep-make < 14-02-2007
libbase-resources_RESOURCE_FILES_INSTALL_DIR = /Library/Libraries/Resources/gnustep-base
libbase-resources_LANGUAGES =
libbase-resources_LOCALIZED_RESOURCE_FILES =
libbase-resources_RESOURCE_DIRS =
libbase-resources_RESOURCE_FILES = Info-gnustep.plist
libgnustep-base_NEEDS_GUI = NO
libgnustep-baseadd_NEEDS_GUI = NO
libgnustep-base_PKGCONFIG_FILES = "gnustep-base.pc"
# Build the Additions subproject first. It can then be used in by
# both gnustep-base and gnustep-baseadd (otherwise, if we ever build
# gnustep-base and gnustep-baseadd in parallel, they'd both try to
# build Additions as a subproject, causing concurrency issues). If it
# can be guaranteed that they'll never be built together, this could
# be removed.
ifeq ($(OBJC2RUNTIME),0)
SUBPROJECTS = ObjectiveC2
endif
SUBPROJECTS += Additions
-include Makefile.preamble
include $(GNUSTEP_MAKEFILES)/aggregate.make
include $(GNUSTEP_MAKEFILES)/library.make
include $(GNUSTEP_MAKEFILES)/resource-set.make
-include Makefile.postamble