]> git.saurik.com Git - apple/libsystem.git/commitdiff
Libsystem-111.1.3.tar.gz mac-os-x-1056 v111.1.3
authorApple <opensource@apple.com>
Tue, 30 Sep 2008 02:47:45 +0000 (02:47 +0000)
committerApple <opensource@apple.com>
Tue, 30 Sep 2008 02:47:45 +0000 (02:47 +0000)
13 files changed:
APPLE_LICENSE [new file with mode: 0644]
GNUmakefile
Info.plist
Makefile
Makefile.postamble [deleted file]
Makefile.preamble [deleted file]
PB.project [deleted file]
Platforms/AppleTV/Makefile.inc [new file with mode: 0644]
Platforms/MacOSX/Makefile.inc [new file with mode: 0644]
Platforms/iPhone/Makefile.inc [new file with mode: 0644]
SystemMath.exp [new file with mode: 0644]
libsys/Makefile
libsys/build-libc.pl

diff --git a/APPLE_LICENSE b/APPLE_LICENSE
new file mode 100644 (file)
index 0000000..fe81a60
--- /dev/null
@@ -0,0 +1,367 @@
+APPLE PUBLIC SOURCE LICENSE
+Version 2.0 - August 6, 2003
+
+Please read this License carefully before downloading this software.
+By downloading or using this software, you are agreeing to be bound by
+the terms of this License. If you do not or cannot agree to the terms
+of this License, please do not download or use the software.
+
+1. General; Definitions. This License applies to any program or other
+work which Apple Computer, Inc. ("Apple") makes publicly available and
+which contains a notice placed by Apple identifying such program or
+work as "Original Code" and stating that it is subject to the terms of
+this Apple Public Source License version 2.0 ("License"). As used in
+this License:
+
+1.1 "Applicable Patent Rights" mean: (a) in the case where Apple is
+the grantor of rights, (i) claims of patents that are now or hereafter
+acquired, owned by or assigned to Apple and (ii) that cover subject
+matter contained in the Original Code, but only to the extent
+necessary to use, reproduce and/or distribute the Original Code
+without infringement; and (b) in the case where You are the grantor of
+rights, (i) claims of patents that are now or hereafter acquired,
+owned by or assigned to You and (ii) that cover subject matter in Your
+Modifications, taken alone or in combination with Original Code.
+
+1.2 "Contributor" means any person or entity that creates or
+contributes to the creation of Modifications.
+
+1.3 "Covered Code" means the Original Code, Modifications, the
+combination of Original Code and any Modifications, and/or any
+respective portions thereof.
+
+1.4 "Externally Deploy" means: (a) to sublicense, distribute or
+otherwise make Covered Code available, directly or indirectly, to
+anyone other than You; and/or (b) to use Covered Code, alone or as
+part of a Larger Work, in any way to provide a service, including but
+not limited to delivery of content, through electronic communication
+with a client other than You.
+
+1.5 "Larger Work" means a work which combines Covered Code or portions
+thereof with code not governed by the terms of this License.
+
+1.6 "Modifications" mean any addition to, deletion from, and/or change
+to, the substance and/or structure of the Original Code, any previous
+Modifications, the combination of Original Code and any previous
+Modifications, and/or any respective portions thereof. When code is
+released as a series of files, a Modification is: (a) any addition to
+or deletion from the contents of a file containing Covered Code;
+and/or (b) any new file or other representation of computer program
+statements that contains any part of Covered Code.
+
+1.7 "Original Code" means (a) the Source Code of a program or other
+work as originally made available by Apple under this License,
+including the Source Code of any updates or upgrades to such programs
+or works made available by Apple under this License, and that has been
+expressly identified by Apple as such in the header file(s) of such
+work; and (b) the object code compiled from such Source Code and
+originally made available by Apple under this License.
+
+1.8 "Source Code" means the human readable form of a program or other
+work that is suitable for making modifications to it, including all
+modules it contains, plus any associated interface definition files,
+scripts used to control compilation and installation of an executable
+(object code).
+
+1.9 "You" or "Your" means an individual or a legal entity exercising
+rights under this License. For legal entities, "You" or "Your"
+includes any entity which controls, is controlled by, or is under
+common control with, You, where "control" means (a) the power, direct
+or indirect, to cause the direction or management of such entity,
+whether by contract or otherwise, or (b) ownership of fifty percent
+(50%) or more of the outstanding shares or beneficial ownership of
+such entity.
+
+2. Permitted Uses; Conditions & Restrictions. Subject to the terms
+and conditions of this License, Apple hereby grants You, effective on
+the date You accept this License and download the Original Code, a
+world-wide, royalty-free, non-exclusive license, to the extent of
+Apple's Applicable Patent Rights and copyrights covering the Original
+Code, to do the following:
+
+2.1 Unmodified Code. You may use, reproduce, display, perform,
+internally distribute within Your organization, and Externally Deploy
+verbatim, unmodified copies of the Original Code, for commercial or
+non-commercial purposes, provided that in each instance:
+
+(a) You must retain and reproduce in all copies of Original Code the
+copyright and other proprietary notices and disclaimers of Apple as
+they appear in the Original Code, and keep intact all notices in the
+Original Code that refer to this License; and
+
+(b) You must include a copy of this License with every copy of Source
+Code of Covered Code and documentation You distribute or Externally
+Deploy, and You may not offer or impose any terms on such Source Code
+that alter or restrict this License or the recipients' rights
+hereunder, except as permitted under Section 6.
+
+2.2 Modified Code. You may modify Covered Code and use, reproduce,
+display, perform, internally distribute within Your organization, and
+Externally Deploy Your Modifications and Covered Code, for commercial
+or non-commercial purposes, provided that in each instance You also
+meet all of these conditions:
+
+(a) You must satisfy all the conditions of Section 2.1 with respect to
+the Source Code of the Covered Code;
+
+(b) You must duplicate, to the extent it does not already exist, the
+notice in Exhibit A in each file of the Source Code of all Your
+Modifications, and cause the modified files to carry prominent notices
+stating that You changed the files and the date of any change; and
+
+(c) If You Externally Deploy Your Modifications, You must make
+Source Code of all Your Externally Deployed Modifications either
+available to those to whom You have Externally Deployed Your
+Modifications, or publicly available. Source Code of Your Externally
+Deployed Modifications must be released under the terms set forth in
+this License, including the license grants set forth in Section 3
+below, for as long as you Externally Deploy the Covered Code or twelve
+(12) months from the date of initial External Deployment, whichever is
+longer. You should preferably distribute the Source Code of Your
+Externally Deployed Modifications electronically (e.g. download from a
+web site).
+
+2.3 Distribution of Executable Versions. In addition, if You
+Externally Deploy Covered Code (Original Code and/or Modifications) in
+object code, executable form only, You must include a prominent
+notice, in the code itself as well as in related documentation,
+stating that Source Code of the Covered Code is available under the
+terms of this License with information on how and where to obtain such
+Source Code.
+
+2.4 Third Party Rights. You expressly acknowledge and agree that
+although Apple and each Contributor grants the licenses to their
+respective portions of the Covered Code set forth herein, no
+assurances are provided by Apple or any Contributor that the Covered
+Code does not infringe the patent or other intellectual property
+rights of any other entity. Apple and each Contributor disclaim any
+liability to You for claims brought by any other entity based on
+infringement of intellectual property rights or otherwise. As a
+condition to exercising the rights and licenses granted hereunder, You
+hereby assume sole responsibility to secure any other intellectual
+property rights needed, if any. For example, if a third party patent
+license is required to allow You to distribute the Covered Code, it is
+Your responsibility to acquire that license before distributing the
+Covered Code.
+
+3. Your Grants. In consideration of, and as a condition to, the
+licenses granted to You under this License, You hereby grant to any
+person or entity receiving or distributing Covered Code under this
+License a non-exclusive, royalty-free, perpetual, irrevocable license,
+under Your Applicable Patent Rights and other intellectual property
+rights (other than patent) owned or controlled by You, to use,
+reproduce, display, perform, modify, sublicense, distribute and
+Externally Deploy Your Modifications of the same scope and extent as
+Apple's licenses under Sections 2.1 and 2.2 above.
+
+4. Larger Works. You may create a Larger Work by combining Covered
+Code with other code not governed by the terms of this License and
+distribute the Larger Work as a single product. In each such instance,
+You must make sure the requirements of this License are fulfilled for
+the Covered Code or any portion thereof.
+
+5. Limitations on Patent License. Except as expressly stated in
+Section 2, no other patent rights, express or implied, are granted by
+Apple herein. Modifications and/or Larger Works may require additional
+patent licenses from Apple which Apple may grant in its sole
+discretion.
+
+6. Additional Terms. You may choose to offer, and to charge a fee for,
+warranty, support, indemnity or liability obligations and/or other
+rights consistent with the scope of the license granted herein
+("Additional Terms") to one or more recipients of Covered Code.
+However, You may do so only on Your own behalf and as Your sole
+responsibility, and not on behalf of Apple or any Contributor. You
+must obtain the recipient's agreement that any such Additional Terms
+are offered by You alone, and You hereby agree to indemnify, defend
+and hold Apple and every Contributor harmless for any liability
+incurred by or claims asserted against Apple or such Contributor by
+reason of any such Additional Terms.
+
+7. Versions of the License. Apple may publish revised and/or new
+versions of this License from time to time. Each version will be given
+a distinguishing version number. Once Original Code has been published
+under a particular version of this License, You may continue to use it
+under the terms of that version. You may also choose to use such
+Original Code under the terms of any subsequent version of this
+License published by Apple. No one other than Apple has the right to
+modify the terms applicable to Covered Code created under this
+License.
+
+8. NO WARRANTY OR SUPPORT. The Covered Code may contain in whole or in
+part pre-release, untested, or not fully tested works. The Covered
+Code may contain errors that could cause failures or loss of data, and
+may be incomplete or contain inaccuracies. You expressly acknowledge
+and agree that use of the Covered Code, or any portion thereof, is at
+Your sole and entire risk. THE COVERED CODE IS PROVIDED "AS IS" AND
+WITHOUT WARRANTY, UPGRADES OR SUPPORT OF ANY KIND AND APPLE AND
+APPLE'S LICENSOR(S) (COLLECTIVELY REFERRED TO AS "APPLE" FOR THE
+PURPOSES OF SECTIONS 8 AND 9) AND ALL CONTRIBUTORS EXPRESSLY DISCLAIM
+ALL WARRANTIES AND/OR CONDITIONS, EXPRESS OR IMPLIED, INCLUDING, BUT
+NOT LIMITED TO, THE IMPLIED WARRANTIES AND/OR CONDITIONS OF
+MERCHANTABILITY, OF SATISFACTORY QUALITY, OF FITNESS FOR A PARTICULAR
+PURPOSE, OF ACCURACY, OF QUIET ENJOYMENT, AND NONINFRINGEMENT OF THIRD
+PARTY RIGHTS. APPLE AND EACH CONTRIBUTOR DOES NOT WARRANT AGAINST
+INTERFERENCE WITH YOUR ENJOYMENT OF THE COVERED CODE, THAT THE
+FUNCTIONS CONTAINED IN THE COVERED CODE WILL MEET YOUR REQUIREMENTS,
+THAT THE OPERATION OF THE COVERED CODE WILL BE UNINTERRUPTED OR
+ERROR-FREE, OR THAT DEFECTS IN THE COVERED CODE WILL BE CORRECTED. NO
+ORAL OR WRITTEN INFORMATION OR ADVICE GIVEN BY APPLE, AN APPLE
+AUTHORIZED REPRESENTATIVE OR ANY CONTRIBUTOR SHALL CREATE A WARRANTY.
+You acknowledge that the Covered Code is not intended for use in the
+operation of nuclear facilities, aircraft navigation, communication
+systems, or air traffic control machines in which case the failure of
+the Covered Code could lead to death, personal injury, or severe
+physical or environmental damage.
+
+9. LIMITATION OF LIABILITY. TO THE EXTENT NOT PROHIBITED BY LAW, IN NO
+EVENT SHALL APPLE OR ANY CONTRIBUTOR BE LIABLE FOR ANY INCIDENTAL,
+SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES ARISING OUT OF OR RELATING
+TO THIS LICENSE OR YOUR USE OR INABILITY TO USE THE COVERED CODE, OR
+ANY PORTION THEREOF, WHETHER UNDER A THEORY OF CONTRACT, WARRANTY,
+TORT (INCLUDING NEGLIGENCE), PRODUCTS LIABILITY OR OTHERWISE, EVEN IF
+APPLE OR SUCH CONTRIBUTOR HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH
+DAMAGES AND NOTWITHSTANDING THE FAILURE OF ESSENTIAL PURPOSE OF ANY
+REMEDY. SOME JURISDICTIONS DO NOT ALLOW THE LIMITATION OF LIABILITY OF
+INCIDENTAL OR CONSEQUENTIAL DAMAGES, SO THIS LIMITATION MAY NOT APPLY
+TO YOU. In no event shall Apple's total liability to You for all
+damages (other than as may be required by applicable law) under this
+License exceed the amount of fifty dollars ($50.00).
+
+10. Trademarks. This License does not grant any rights to use the
+trademarks or trade names "Apple", "Apple Computer", "Mac", "Mac OS",
+"QuickTime", "QuickTime Streaming Server" or any other trademarks,
+service marks, logos or trade names belonging to Apple (collectively
+"Apple Marks") or to any trademark, service mark, logo or trade name
+belonging to any Contributor. You agree not to use any Apple Marks in
+or as part of the name of products derived from the Original Code or
+to endorse or promote products derived from the Original Code other
+than as expressly permitted by and in strict compliance at all times
+with Apple's third party trademark usage guidelines which are posted
+at http://www.apple.com/legal/guidelinesfor3rdparties.html.
+
+11. Ownership. Subject to the licenses granted under this License,
+each Contributor retains all rights, title and interest in and to any
+Modifications made by such Contributor. Apple retains all rights,
+title and interest in and to the Original Code and any Modifications
+made by or on behalf of Apple ("Apple Modifications"), and such Apple
+Modifications will not be automatically subject to this License. Apple
+may, at its sole discretion, choose to license such Apple
+Modifications under this License, or on different terms from those
+contained in this License or may choose not to license them at all.
+
+12. Termination.
+
+12.1 Termination. This License and the rights granted hereunder will
+terminate:
+
+(a) automatically without notice from Apple if You fail to comply with
+any term(s) of this License and fail to cure such breach within 30
+days of becoming aware of such breach;
+
+(b) immediately in the event of the circumstances described in Section
+13.5(b); or
+
+(c) automatically without notice from Apple if You, at any time during
+the term of this License, commence an action for patent infringement
+against Apple; provided that Apple did not first commence
+an action for patent infringement against You in that instance.
+
+12.2 Effect of Termination. Upon termination, You agree to immediately
+stop any further use, reproduction, modification, sublicensing and
+distribution of the Covered Code. All sublicenses to the Covered Code
+which have been properly granted prior to termination shall survive
+any termination of this License. Provisions which, by their nature,
+should remain in effect beyond the termination of this License shall
+survive, including but not limited to Sections 3, 5, 8, 9, 10, 11,
+12.2 and 13. No party will be liable to any other for compensation,
+indemnity or damages of any sort solely as a result of terminating
+this License in accordance with its terms, and termination of this
+License will be without prejudice to any other right or remedy of
+any party.
+
+13. Miscellaneous.
+
+13.1 Government End Users. The Covered Code is a "commercial item" as
+defined in FAR 2.101. Government software and technical data rights in
+the Covered Code include only those rights customarily provided to the
+public as defined in this License. This customary commercial license
+in technical data and software is provided in accordance with FAR
+12.211 (Technical Data) and 12.212 (Computer Software) and, for
+Department of Defense purchases, DFAR 252.227-7015 (Technical Data --
+Commercial Items) and 227.7202-3 (Rights in Commercial Computer
+Software or Computer Software Documentation). Accordingly, all U.S.
+Government End Users acquire Covered Code with only those rights set
+forth herein.
+
+13.2 Relationship of Parties. This License will not be construed as
+creating an agency, partnership, joint venture or any other form of
+legal association between or among You, Apple or any Contributor, and
+You will not represent to the contrary, whether expressly, by
+implication, appearance or otherwise.
+
+13.3 Independent Development. Nothing in this License will impair
+Apple's right to acquire, license, develop, have others develop for
+it, market and/or distribute technology or products that perform the
+same or similar functions as, or otherwise compete with,
+Modifications, Larger Works, technology or products that You may
+develop, produce, market or distribute.
+
+13.4 Waiver; Construction. Failure by Apple or any Contributor to
+enforce any provision of this License will not be deemed a waiver of
+future enforcement of that or any other provision. Any law or
+regulation which provides that the language of a contract shall be
+construed against the drafter will not apply to this License.
+
+13.5 Severability. (a) If for any reason a court of competent
+jurisdiction finds any provision of this License, or portion thereof,
+to be unenforceable, that provision of the License will be enforced to
+the maximum extent permissible so as to effect the economic benefits
+and intent of the parties, and the remainder of this License will
+continue in full force and effect. (b) Notwithstanding the foregoing,
+if applicable law prohibits or restricts You from fully and/or
+specifically complying with Sections 2 and/or 3 or prevents the
+enforceability of either of those Sections, this License will
+immediately terminate and You must immediately discontinue any use of
+the Covered Code and destroy all copies of it that are in your
+possession or control.
+
+13.6 Dispute Resolution. Any litigation or other dispute resolution
+between You and Apple relating to this License shall take place in the
+Northern District of California, and You and Apple hereby consent to
+the personal jurisdiction of, and venue in, the state and federal
+courts within that District with respect to this License. The
+application of the United Nations Convention on Contracts for the
+International Sale of Goods is expressly excluded.
+
+13.7 Entire Agreement; Governing Law. This License constitutes the
+entire agreement between the parties with respect to the subject
+matter hereof. This License shall be governed by the laws of the
+United States and the State of California, except that body of
+California law concerning conflicts of law.
+
+Where You are located in the province of Quebec, Canada, the following
+clause applies: The parties hereby confirm that they have requested
+that this License and all related documents be drafted in English. Les
+parties ont exige que le present contrat et tous les documents
+connexes soient rediges en anglais.
+
+EXHIBIT A.
+
+"Portions Copyright (c) 1999-2003 Apple Computer, Inc. All Rights
+Reserved.
+
+This file contains Original Code and/or Modifications of Original Code
+as defined in and that are subject to the Apple Public Source License
+Version 2.0 (the 'License'). You may not use this file except in
+compliance with the License. Please obtain a copy of the License at
+http://www.opensource.apple.com/apsl/ and read it before using this
+file.
+
+The Original Code and all software distributed under the License are
+distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+Please see the License for the specific language governing rights and
+limitations under the License."
index d589dc362ae794e7e521349eff0214ed2909a3e4..9cc72e4f99b25a711545e5b7bb95f378859657c6 100644 (file)
@@ -5,69 +5,99 @@
 # end.  This is because the comm page symbols are added as a special segment,
 # which the linker will not thin, so we have to build thin and combine.
 ##---------------------------------------------------------------------
 # end.  This is because the comm page symbols are added as a special segment,
 # which the linker will not thin, so we have to build thin and combine.
 ##---------------------------------------------------------------------
-PROJECT = Libsystem
+Project = Libsystem
+VersionLetter = B
+
+include $(MAKEFILEPATH)/CoreOS/ReleaseControl/Common.make
+
+ifeq ($(Version),0)
+ifdef RC_ProjectSourceVersion
+Version = $(RC_ProjectSourceVersion)
+endif
+endif
 
 no_target:
        @$(MAKE) -f Makefile
 
 
 no_target:
        @$(MAKE) -f Makefile
 
+ifndef RC_TARGET_CONFIG
+export RC_TARGET_CONFIG = MacOSX
+endif
+include Platforms/$(RC_TARGET_CONFIG)/Makefile.inc
+
 ##---------------------------------------------------------------------
 # For each arch, we setup the independent OBJROOT and DSTROOT, and adjust
 # the other flags.  After all the archs are built, we copy over one on
 # time (for the non-dylib files), and then call lipo to create fat files
 # for the three dylibs.
 ##---------------------------------------------------------------------
 ##---------------------------------------------------------------------
 # For each arch, we setup the independent OBJROOT and DSTROOT, and adjust
 # the other flags.  After all the archs are built, we copy over one on
 # time (for the non-dylib files), and then call lipo to create fat files
 # for the three dylibs.
 ##---------------------------------------------------------------------
-ALLARCHS = hppa i386 m68k ppc ppc64 sparc x86_64
 NARCHS = $(words $(RC_ARCHS))
 USRLIB = /usr/lib
 ifdef ALTUSRLOCALLIBSYSTEM
 LIBSYS = $(ALTUSRLOCALLIBSYSTEM)
 else
 NARCHS = $(words $(RC_ARCHS))
 USRLIB = /usr/lib
 ifdef ALTUSRLOCALLIBSYSTEM
 LIBSYS = $(ALTUSRLOCALLIBSYSTEM)
 else
-LIBSYS = $(NEXT_ROOT)/usr/local/lib/system
+LIBSYS = $(SDKROOT)/usr/local/lib/system
 endif
 endif
+FORMS = dynamic
+SUFFIX = ''
+ifdef FEATURE_DEBUG_DYLIB
+FORMS += debug
+SUFFIX += _debug
+endif
+ifdef FEATURE_PROFILE_DYLIB
+FORMS += profile
+SUFFIX += _profile
+endif
+BSD_LIBS = c info m pthread dbm poll dl rpcsvc proc
+FPATH = /System/Library/Frameworks/System.framework
 
 
-install: fake $(DSTROOT)/usr/local/lib/system/libc.a $(RC_ARCHS)
-ifneq "$(NARCHS)" "1"
-       rsync -aH $(OBJROOT)/$(word 1,$(RC_ARCHS))/dstroot/ $(DSTROOT)
-       rsync -aH $(OBJROOT)/$(word 1,$(RC_ARCHS))/symroot/ $(SYMROOT)
+build:: fake libSystem
        @set -x && \
        @set -x && \
-       for i in libSystem.B.dylib libSystem.B_debug.dylib libSystem.B_profile.dylib; do \
-           rm -f $(DSTROOT)$(USRLIB)/$$i && \
-           lipo -create -o $(DSTROOT)$(USRLIB)/$$i $(foreach ARCH,$(RC_ARCHS),$(OBJROOT)/$(ARCH)/dstroot$(USRLIB)/$$i) && \
-           rm -f $(SYMROOT)/$$i && \
-           lipo -create -o $(SYMROOT)/$$i $(foreach ARCH,$(RC_ARCHS),$(OBJROOT)/$(ARCH)/symroot/$$i) || exit 1; \
+       cd $(DSTROOT)/usr/lib && \
+       for i in $(BSD_LIBS); do \
+           ln -sf libSystem.dylib lib$$i.dylib || exit 1; \
        done
        done
-endif
+       find $(DSTROOT) -type l ! -perm 755 | xargs chmod -hv 755
+       install -d $(DSTROOT)$(FPATH)/Versions/$(VersionLetter)/Resources
        @set -x && \
        @set -x && \
-       for i in libSystem.B.dylib libSystem.B_debug.dylib libSystem.B_profile.dylib; do \
-           dsymutil $(SYMROOT)/$$i || exit 1; \
-       done
+       cd $(DSTROOT)$(FPATH) && \
+       ln -sf Versions/Current/PrivateHeaders && \
+       ln -sf Versions/Current/Resources && \
+       for S in $(SUFFIX); do \
+           ln -sf Versions/Current/System$$S || exit 1; \
+       done && \
+       cd Versions && \
+       ln -sf $(VersionLetter) Current && \
+       cd $(VersionLetter) && \
+       for S in $(SUFFIX); do \
+           ln -sf ../../../../../../usr/lib/libSystem.$(VersionLetter)$$S.dylib System$$S || exit 1; \
+       done && \
+       cp -f $(SRCROOT)/Info.plist Resources
 
 # 4993197: force dependency generation for libsyscall.a
 fake:
        @set -x && \
        cd $(OBJROOT) && \
        echo 'main() { __getpid(); return 0; }' > fake.c && \
 
 # 4993197: force dependency generation for libsyscall.a
 fake:
        @set -x && \
        cd $(OBJROOT) && \
        echo 'main() { __getpid(); return 0; }' > fake.c && \
-       cc -c fake.c && \
-       ld -r -o fake fake.o -lsyscall -L$(LIBSYS)
-
-$(DSTROOT)/usr/local/lib/system/libc.a:
-       bsdmake -C libsys install
+       cc -c $(RC_CFLAGS) fake.c && \
+       ld -r -o fake $(foreach ARCH,$(RC_ARCHS),-arch $(ARCH)) fake.o -lsyscall -L$(LIBSYS)
 
 
-$(ALLARCHS):
-ifneq "$(NARCHS)" "1"
-       mkdir -p $(OBJROOT)/$@/objroot $(OBJROOT)/$@/dstroot $(OBJROOT)/$@/symroot
-       $(MAKE) -f Makefile install \
-           OBJROOT='$(OBJROOT)/$@/objroot' \
-           TOPOBJROOT='$(OBJROOT)' \
-           DSTROOT='$(OBJROOT)/$@/dstroot' \
-           SYMROOT='$(OBJROOT)/$@/symroot' \
-           DESTDIR='$(DSTROOT)' \
-           RC_CFLAGS='-arch $@ $(RC_NONARCH_CFLAGS)' \
-           RC_ARCHS='$@' \
-           RC_$@=YES $(foreach ARCH,$(filter-out $@,$(ALLARCHS)),RC_$(ARCH)=)
-else # NARCHS == 1
-       $(MAKE) -f Makefile install TOPOBJROOT='$(OBJROOT)' DESTDIR='$(DSTROOT)'
-endif # NARCHS != 1
+libc:
+       mkdir -p '$(OBJROOT)/libc'
+       bsdmake -C libsys install \
+       DSTROOT='$(DSTROOT)' \
+       OBJROOT='$(OBJROOT)/libc' \
+       SRCROOT='$(SRCROOT)' \
+       SYMROOT='$(SYMROOT)'
 
 
-.DEFAULT:
-       @$(MAKE) -f Makefile $@
+libSystem: libc
+       mkdir -p '$(OBJROOT)/libSystem'
+       bsdmake install \
+       FEATURE_LIBMATHCOMMON=$(FEATURE_LIBMATHCOMMON) \
+       FEATURE_ORDER_FILE=$(FEATURE_ORDER_FILE) \
+       FORMS='$(FORMS)' \
+       Version=$(Version) \
+       VersionLetter=$(VersionLetter) \
+       DSTROOT='$(DSTROOT)' \
+       OBJROOT='$(OBJROOT)/libSystem' \
+       SRCROOT='$(SRCROOT)' \
+       SYMROOT='$(SYMROOT)'
index 5c6728520bb5236855a3a772fc2cd6ea018f5fff..4261d7909a67b8e48741fb01c84b19c04561037c 100644 (file)
@@ -15,7 +15,7 @@
        <key>CFBundlePackageType</key>
        <string>FMWK</string>
        <key>CFBundleShortVersionString</key>
        <key>CFBundlePackageType</key>
        <string>FMWK</string>
        <key>CFBundleShortVersionString</key>
-       <string>9.1</string>
+       <string>9.2</string>
        <key>CFBundleSignature</key>
        <string>????</string>
        <key>CarbonLazyValues</key>
        <key>CFBundleSignature</key>
        <string>????</string>
        <key>CarbonLazyValues</key>
index 3354d6dbba12cdc8d53fbc83b0364423d13c961e..cad8f795a090c40cd2d3fddaea2ede1bba0f8839 100644 (file)
--- a/Makefile
+++ b/Makefile
-#
-# Generated by the Apple Project Builder.
-#
-# NOTE: Do NOT change this file -- Project Builder maintains it.
-#
-# Put all of your customizations in files called Makefile.preamble
-# and Makefile.postamble (both optional), and Makefile will include them.
-#
-
-NAME = System
-
-PROJECTVERSION = 2.8
-PROJECT_TYPE = Library
-
-OTHERLINKED = SystemMath.s
-OTHERLINKEDOFILES = SystemMath.o
-
-OTHERSRCS = GNUmakefile Makefile.preamble Makefile Makefile.postamble \
-           SystemInit.order System.order Info.plist CommPageSymbols.st libsys
-
-MAKEFILEDIR = $(MAKEFILEPATH)/pb_makefiles
-CURRENTLY_ACTIVE_VERSION = YES
-DEPLOY_WITH_VERSION_NAME = B
-CODE_GEN_STYLE = DYNAMIC
-MAKEFILE = library.make
-NEXTSTEP_INSTALLDIR = $(USRLIBDIR)
-WINDOWS_INSTALLDIR = /Library/Frameworks
-PDO_UNIX_INSTALLDIR = /Library/Frameworks
-
-ifneq ($(filter %64,$(RC_ARCHS)),)
-LP64 = 1
-endif
+NAME0 = libSystem
+NAME = $(NAME0).$(VersionLetter)
+
+# for now, use the default compiler
+GCC := $(CC)
+GCCLIBS = -lgcc -lgcc_eh
+NARCHS != echo $(RC_ARCHS) | wc -w
+.ifdef ALTUSRLOCALLIBSYSTEM
+LIBSYS = $(ALTUSRLOCALLIBSYSTEM)
+.else
+LIBSYS = $(SDKROOT)/usr/local/lib/system
+.endif
+SLFS_F_PH = $(SDKROOT)/System/Library/Frameworks/System.framework/PrivateHeaders
+.ifdef SDKROOT
+SDKROOTCFLAGS = -isysroot '$(SDKROOT)'
+SDKROOTLDFLAGS = -syslibroot '$(SDKROOT)'
+.endif
+.if !empty(FEATURE_ORDER_FILE)
+ORDERFILES = -Wl,-order_file,$(SRCROOT)/SystemInit.order -Wl,-order_file,$(SRCROOT)/System.order
+.endif
 LIBS = -lc -lcommonCrypto -ldyldapis\
        -linfo -ldns_sd -lm -lmacho\
 LIBS = -lc -lcommonCrypto -ldyldapis\
        -linfo -ldns_sd -lm -lmacho\
-       -lnotify -lunc -lkeymgr -llaunch\
-       -lcopyfile -lsandbox -lquarantine -lremovefile
-DEBUG_LIBS = $(LIBS)
-PROF_LIBS = $(LIBS)
+       -lnotify -lkeymgr -llaunch \
+       -lcopyfile -lsandbox -lremovefile
+CONDITIONALLIBS = unc quarantine
+.for L in $(CONDITIONALLIBS)
+# the following should be replaced with tconf when 5784037 is complete
+.if exists($(LIBSYS)/lib$(L).a)
+LIBS += -l$(L)
+.endif
+.endfor # CONDITIONALLIBS
 
 
-ifdef ALTUSRLOCALLIBSYSTEM
-LIBSYS = $(ALTUSRLOCALLIBSYSTEM)
-else
-LIBSYS = $(NEXT_ROOT)/usr/local/lib/system
-endif
+# These variables are to guarantee that the left-hand side of an expression is
+# always a variable
+dynamic = dynamic
+
+all: build
+
+build: build-debug build-dynamic build-profile
+
+# These are the non B&I defaults
+.ifndef RC_ProjectName
+install: installhdrs install-all
+
+.else # RC_ProjectName
+
+.for F in $(FORMS)
+install: BI-install-$(F)
+.endfor # FORMS
+.endif # RC_ProjectName
+
+.for A in $(RC_ARCHS)
+OBJS-$(A) = $(OBJROOT)/$(A)/SystemMath.o $(OBJROOT)/$(A)/System_vers.o
+.endfor # RC_ARCHS
+
+.for F in $(FORMS)
+.if $(dynamic) == $(F)
+SUFFIX$(F) =
+.else
+SUFFIX$(F) = _$(F)
+.endif
+.if !empty(FEATURE_LIBMATHCOMMON)
+LIBMATHCOMMON$(F) = -L/usr/lib/system -sub_library libmathCommon$(SUFFIX$(F)) -lmathCommon$(SUFFIX$(F))
+.endif
+LIPOARGS$(F) != perl -e 'printf "%s\n", join(" ", map(qq(-arch $$_ \"$(OBJROOT)/$$_/$(F)/$(NAME)$(SUFFIX$(F)).dylib\"), qw($(RC_ARCHS))))'
+
+.for A in $(RC_ARCHS)
+build-$(F): build-$(A)-$(F)
+.endfor # RC_ARCHS
+build-$(F):
+.if $(NARCHS) == 1
+       cp -p "$(OBJROOT)/$(RC_ARCHS)/$(F)/$(NAME)$(SUFFIX$(F)).dylib" "$(SYMROOT)"
+.else
+       lipo -create $(LIPOARGS$(F)) -output "$(SYMROOT)/$(NAME)$(SUFFIX$(F)).dylib"
+.endif
+       dsymutil "$(SYMROOT)/$(NAME)$(SUFFIX$(F)).dylib"
+
+.for A in $(RC_ARCHS)
+build-$(A)-$(F): $(OBJROOT)/$(A)/$(F) $(OBJROOT)/$(A)/CommPageSymbols.o $(OBJS-$(A))
+       $(GCC) -dynamiclib -arch $(A) -pipe \
+           -o '$(OBJROOT)/$(A)/$(F)/$(NAME)$(SUFFIX$(F)).dylib' \
+           -compatibility_version 1 -current_version $(Version) \
+           -install_name /usr/lib/$(NAME)$(SUFFIX$(F)).dylib \
+           -nodefaultlibs -all_load -multi_module -Wl,-search_paths_first \
+           -segcreate __DATA __commpage $(OBJROOT)/$(A)/CommPageSymbols.o \
+           $(ORDERFILES) $(SKDROOTLDFLAGS) $(OBJS-$(A)) \
+           -L$(DSTROOT)/usr/local/lib/system -L$(LIBSYS) $(LIBMATHCOMMON$(F)) \
+           $(LIBS:C/$/$(SUFFIX$(F))/) $(GCCLIBS)
+
+$(OBJROOT)/$(A)/$(F):
+       mkdir -p '$(.TARGET)'
+
+.endfor # RC_ARCHS
+.endfor # FORMS
+
+SEG1ADDR_i386 = 0xffff0000
+SEG1ADDR_ppc = 0xffff8000
+SEG1ADDR_ppc64 = 0xffffffffffff8000
+SEG1ADDR_x86_64 = 0x00007fffffe00000
+SEG1ADDR_arm = 0xffff8000
+
+CFLAGS = -g -Os -Wall -Werror -I'$(SLFS_F_PH)' -fno-common $(SDKROOTCFLAGS)
+
+$(OBJROOT)/System_vers.c:
+       vers_string -c System | \
+       sed -e 's/SGS_VERS/SYSTEM_VERS_STRING/' -e 's/VERS_NUM/SYSTEM_VERS_NUM/' > $(.TARGET)
 
 
-LIBRARY_PATHS = -L$(DESTDIR)/usr/local/lib/system -L$(LIBSYS)
-NEXTSTEP_PB_CFLAGS = -Wall -Werror -I$(NEXT_ROOT)/System/Library/Frameworks/System.framework/PrivateHeaders
-NEXTSTEP_PB_LDFLAGS = -nodefaultlibs -all_load -multi_module -Wl,-search_paths_first
+.for A in $(RC_ARCHS)
+$(OBJROOT)/$(A)/CommPageSymbols.o: $(SRCROOT)/CommPageSymbols.st
+       $(GCC) -c -o '$(.TARGET:R)_intermediate.$(.TARGET:E)' -arch $(A) -x assembler-with-cpp $(CFLAGS) '$(.ALLSRC)'
+       ld -arch $(A) -r -seg1addr $(SEG1ADDR_$(A:C/^armv.*$/arm/)) '$(.TARGET:R)_intermediate.$(.TARGET:E)' -o '$(.TARGET)'
 
 
+$(OBJROOT)/$(A)/SystemMath.o: $(SRCROOT)/SystemMath.s
+       $(GCC) -c -o '$(.TARGET)' -arch $(A) $(CFLAGS) '$(.ALLSRC)'
 
 
-NEXTSTEP_OBJCPLUS_COMPILER = /usr/bin/cc
-WINDOWS_OBJCPLUS_COMPILER = $(DEVDIR)/gcc
-PDO_UNIX_OBJCPLUS_COMPILER = $(NEXTDEV_BIN)/gcc
-NEXTSTEP_JAVA_COMPILER = /usr/bin/javac
-WINDOWS_JAVA_COMPILER = $(JDKBINDIR)/javac.exe
-PDO_UNIX_JAVA_COMPILER = $(JDKBINDIR)/javac
+$(OBJROOT)/$(A)/System_vers.o: $(OBJROOT)/System_vers.c
+       $(GCC) -c -o '$(.TARGET)' -arch $(A) $(CFLAGS) '$(.ALLSRC)'
 
 
-include $(MAKEFILEDIR)/platform.make
+.endfor # RC_ARCHS
 
 
--include Makefile.preamble
+installhdrs:
 
 
-include $(MAKEFILEDIR)/$(MAKEFILE)
+.for F in $(FORMS)
+BI-install-$(F): build-$(F)
+       mkdir -p "$(DSTROOT)/usr/lib"
+       @echo "===== Installing $(NAME)$(SUFFIX$(F)).dylib ====="
+       install "$(SYMROOT)/$(NAME)$(SUFFIX$(F)).dylib" "$(DSTROOT)/usr/lib"
+       strip -S "$(DSTROOT)/usr/lib/$(NAME)$(SUFFIX$(F)).dylib"
+       chmod a-w "$(DSTROOT)/usr/lib/$(NAME)$(SUFFIX$(F)).dylib"
+       ln -sf "$(NAME)$(SUFFIX$(F)).dylib" "$(DSTROOT)/usr/lib/$(NAME0)$(SUFFIX$(F)).dylib"
+.endfor # FORMS
 
 
--include Makefile.postamble
+install-all: build
+.for F in $(FORMS)
+install-all: BI-install-$(F)
+.endfor # FORMS
 
 
--include Makefile.dependencies
+clean:
+.for A in $(RC_ARCHS)
+       rm -rf $(OBJROOT)/$(A)
+.endfor # RC_ARCHS
diff --git a/Makefile.postamble b/Makefile.postamble
deleted file mode 100644 (file)
index 6821dfe..0000000
+++ /dev/null
@@ -1,71 +0,0 @@
-include $(CoreOSMakefiles)/ProjectBuilder/Makefile.Postamble.Common
-
-CC = $(GCC) # override
-# gcc-3.5 doesn't support -precomp-trustfile (3689986), which
-# pb_makefiles/flags.make sets, so we overwrite PRECOMP_CFLAGS
-PRECOMP_CFLAGS =
-
-ifeq "$(BUILD_TYPE)" "normal"
-LIBS += $(GCCLIBS)
-else
-LIBS = 
-endif
-
-# pb_makefiles erroneously omits $(BUILD_TYPE_SUFFIX) from the install name
-DYLIB_INSTALL_NAME = $(LIBRARY_PREFIX)$(NAME).$(VERSION_NAME)$(BUILD_TYPE_SUFFIX)$(LIBRARY_EXT)
-
-# The nonversioned suffix link is required by cc -pg, which is a bug in the compiler.
-# We can remove those when this is fixed.
-
-override DEBUG_SUFFIX = _debug
-PRODUCTS += $(foreach TYPE, DEBUG PROFILE,                                                             \
-               $(PRODUCT_DIR)/$(LIBRARY_PREFIX)$(NAME)$($(TYPE)_SUFFIX)$(LIBRARY_EXT)                  \
-               $(PRODUCT_DIR)/$(LIBRARY_PREFIX)$(NAME).$(VERSION_NAME)$($(TYPE)_SUFFIX)$(LIBRARY_EXT)  \
-            )
-
-SystemFramework = $(NSFRAMEWORKDIR)/System.framework
-VersionDir      = Versions/$(VERSION_NAME)
-
-compat-next:
-       $(INSTALL_DIRECTORY) "$(DSTROOT)$(SystemFramework)"
-       $(INSTALL_DIRECTORY) "$(DSTROOT)$(SystemFramework)/Versions"
-       $(INSTALL_DIRECTORY) "$(DSTROOT)$(SystemFramework)/$(VersionDir)"
-       $(LN) -fs "$(VERSION_NAME)" "$(DSTROOT)$(SystemFramework)/Versions/Current"
-       set -x && for suffix in "" $(DEBUG_SUFFIX) $(PROFILE_SUFFIX); do                                                                \
-               $(LN) -fs "Versions/Current/$(NAME)$${suffix}" "$(DSTROOT)$(SystemFramework)/$(NAME)$${suffix}" &&      \
-               $(LN) -fs "../../../../../..$(INSTALLDIR)/$(LIBRARY_PREFIX)$(NAME).$(VERSION_NAME)$${suffix}$(LIBRARY_EXT)" \
-                       "$(DSTROOT)$(SystemFramework)/$(VersionDir)/$(NAME)$${suffix}"                          || exit 1;      \
-       done
-       $(LN) -fs "Versions/Current/PrivateHeaders" "$(DSTROOT)$(SystemFramework)"
-
-compat-bsd:
-       set -x && for lib in $(BSD_LIBS) ; do           \
-         $(LN) -fs libSystem.dylib "$(DSTROOT)$(INSTALLDIR)/lib$${lib}.dylib" || exit 1;       \
-       done
-
-copy_plist:
-       $(MKDIR) $(DSTROOT)$(SystemFramework)/$(VersionDir)/Resources
-       $(LN) -fs Versions/Current/Resources $(DSTROOT)$(SystemFramework)/Resources
-       $(RM) -f $(DSTROOT)$(SystemFramework)/$(VersionDir)/Resources/Info.plist
-       $(CP) $(SRCROOT)/Info.plist $(DSTROOT)$(SystemFramework)/$(VersionDir)/Resources
-       $(CHMOD) 444 $(DSTROOT)$(SystemFramework)/$(VersionDir)/Resources/Info.plist
-
-.PHONY: comm-page-symbols
-comm-page-symbols: CommPageSymbols.o
-
-.SUFFIXES: .st
-
-ALL_ARCHS = i386 ppc ppc64 x86_64
-SEG1ADDR_i386 = 0xffff0000
-SEG1ADDR_ppc = 0xffff8000
-SEG1ADDR_ppc64 = 0xffffffffffff8000
-SEG1ADDR_x86_64 = 0x00007fffffe00000
-SLFS_F_PH = /System/Library/Frameworks/System.framework/PrivateHeaders
-
-$(foreach A,$(ALL_ARCHS),$(OFILE_DIR)/%.$(A).o %.$(A).o): %.st
-       $(CC) -arch $(CURRENT_ARCH) -x assembler-with-cpp \
-           -I$(SLFS_F_PH)/$(CURRENT_ARCH) \
-           $(ALL_CFLAGS) -c -o $(OFILE_DIR)/commsym.$(CURRENT_ARCH).o $<
-       strip -S $(OFILE_DIR)/commsym.$(CURRENT_ARCH).o
-       ld -arch $(CURRENT_ARCH) -r -seg1addr $(SEG1ADDR_$(CURRENT_ARCH)) \
-           $(OFILE_DIR)/commsym.$(CURRENT_ARCH).o -o $(OFILE_DIR)/$(notdir $@)
diff --git a/Makefile.preamble b/Makefile.preamble
deleted file mode 100644 (file)
index 1a7dd31..0000000
+++ /dev/null
@@ -1,24 +0,0 @@
-GCC = gcc-4.0
-GCCLIBS = -lgcc -lgcc_eh
-
-BEFORE_BUILD += comm-page-symbols
-BEFORE_INSTALL += profile debug
-AFTER_INSTALL  += compat-next compat-bsd copy_plist
-
-PROFILE_BUILD_LIBS := $(foreach LIBS, $(LIBS), $(LIBS)_profile) $(GCCLIBS)
-DEBUG_BUILD_LIBS := $(foreach LIBS, $(LIBS), $(LIBS)_debug  ) $(GCCLIBS)
-
-ifeq ($(BUILD_TYPE),normal)
-LIBMATHCOMMONSUFFIX =
-else
-LIBMATHCOMMONSUFFIX = $(BUILD_TYPE_SUFFIX)
-endif
-OTHER_LIBTOOL_FLAGS = \
-       -L/usr/lib/system -sub_library libmathCommon$(LIBMATHCOMMONSUFFIX) \
-       -lmathCommon$(LIBMATHCOMMONSUFFIX) \
-       -segcreate __DATA __commpage $(OFILE_DIR)/CommPageSymbols.o \
-       -Wl,-order_file,SystemInit.order -Wl,-order_file,System.order
-
-BSD_LIBS = c info m pthread dbm poll dl rpcsvc proc
-
-include $(MAKEFILEPATH)/CoreOS/ProjectBuilder/Makefile.Preamble.Common
diff --git a/PB.project b/PB.project
deleted file mode 100644 (file)
index 3fe639f..0000000
+++ /dev/null
@@ -1,32 +0,0 @@
-{
-    CURRENTLY_ACTIVE_VERSION = YES; 
-    DEPLOY_WITH_VERSION_NAME = B; 
-    DYNAMIC_CODE_GEN = YES; 
-    FILESTABLE = {
-        FRAMEWORKS = (); 
-        FRAMEWORKSEARCH = (); 
-        LIBRARYSEARCH = ("$(NEXT_ROOT)/usr/local/lib/system"); 
-        OTHER_LIBS = (c, dyld, info, kvm, m, macho, notify, streams, unc, keymgr, poll, dl); 
-        OTHER_LINKED = (SystemMath.s); 
-        OTHER_SOURCES = (GNUmakefile, Makefile.preamble, Makefile, Makefile.postamble, System.order, Info.plist, CommPageSymbols.st); 
-    }; 
-    LANGUAGE = English; 
-    MAKEFILEDIR = "$(MAKEFILEPATH)/pb_makefiles"; 
-    NEXTSTEP_BUILDTOOL = /usr/bin/gnumake; 
-    NEXTSTEP_COMPILEROPTIONS = "-Wall -Werror"; 
-    NEXTSTEP_INSTALLDIR = "$(USRLIBDIR)"; 
-    NEXTSTEP_JAVA_COMPILER = /usr/bin/javac; 
-    NEXTSTEP_LINKEROPTIONS = "-nostdlib -all_load"; 
-    NEXTSTEP_OBJCPLUS_COMPILER = /usr/bin/cc; 
-    PDO_UNIX_BUILDTOOL = $NEXT_ROOT/Developer/bin/make; 
-    PDO_UNIX_INSTALLDIR = /Library/Frameworks; 
-    PDO_UNIX_JAVA_COMPILER = "$(JDKBINDIR)/javac"; 
-    PDO_UNIX_OBJCPLUS_COMPILER = "$(NEXTDEV_BIN)/gcc"; 
-    PROJECTNAME = System; 
-    PROJECTTYPE = Library; 
-    PROJECTVERSION = 2.8; 
-    WINDOWS_BUILDTOOL = $NEXT_ROOT/Developer/Executables/make; 
-    WINDOWS_INSTALLDIR = /Library/Frameworks; 
-    WINDOWS_JAVA_COMPILER = "$(JDKBINDIR)/javac.exe"; 
-    WINDOWS_OBJCPLUS_COMPILER = "$(DEVDIR)/gcc"; 
-}
diff --git a/Platforms/AppleTV/Makefile.inc b/Platforms/AppleTV/Makefile.inc
new file mode 100644 (file)
index 0000000..fca1805
--- /dev/null
@@ -0,0 +1,15 @@
+#
+# Selectable features for AppleTV
+#
+
+# Build _debug.dylib
+FEATURE_DEBUG_DYLIB = 1
+
+# Link libmathCommon
+FEATURE_LIBMATHCOMMON = 1
+
+# Use order file
+FEATURE_ORDER_FILE = 1
+
+# Build _profile.dylib
+FEATURE_PROFILE_DYLIB = 1
diff --git a/Platforms/MacOSX/Makefile.inc b/Platforms/MacOSX/Makefile.inc
new file mode 100644 (file)
index 0000000..ba71fee
--- /dev/null
@@ -0,0 +1,15 @@
+#
+# Selectable features for MacOSX
+#
+
+# Build _debug.dylib
+FEATURE_DEBUG_DYLIB = 1
+
+# Link libmathCommon
+FEATURE_LIBMATHCOMMON = 1
+
+# Use order file
+FEATURE_ORDER_FILE = 1
+
+# Build _profile.dylib
+FEATURE_PROFILE_DYLIB = 1
diff --git a/Platforms/iPhone/Makefile.inc b/Platforms/iPhone/Makefile.inc
new file mode 100644 (file)
index 0000000..c8f102c
--- /dev/null
@@ -0,0 +1,15 @@
+#
+# Selectable features for iPhone
+#
+
+# Build _debug.dylib
+#FEATURE_DEBUG_DYLIB = 1
+
+# Link libmathCommon
+#FEATURE_LIBMATHCOMMON = 1
+
+# Use order file
+#FEATURE_ORDER_FILE = 1
+
+# Build _profile.dylib
+#FEATURE_PROFILE_DYLIB = 1
diff --git a/SystemMath.exp b/SystemMath.exp
new file mode 100644 (file)
index 0000000..ef94b1e
--- /dev/null
@@ -0,0 +1,205 @@
+__fpclassifyd
+__fpclassifyf
+__inf
+__isfinited
+__isfinitef
+__isnand
+__isnanf
+__isnormald
+__isnormalf
+__signbitd
+__signbitf
+abort
+abs
+acos
+acosh
+asctime
+asin
+asinh
+atan
+atan2
+atanh
+atexit
+atof
+atoi
+atol
+bsearch
+calloc
+ceil
+clearerr
+clock
+close
+copysign
+cos
+cosh
+ctime
+difftime
+div
+dup
+erf
+erfc
+exit
+exp
+exp2
+expm1
+fabs
+fclose
+fcntl
+fdim
+fdopen
+feclearexcept
+fegetenv
+fegetexcept
+fegetround
+feholdexcept
+feof
+feraiseexcept
+ferror
+fesetenv
+fesetexcept
+fesetround
+fetestexcept
+feupdateenv
+fflush
+fgetc
+fgetpos
+fgets
+floor
+fmax
+fmin
+fmod
+fopen
+fprintf
+fputc
+fputs
+fread
+free
+freopen
+frexp
+fscanf
+fseek
+fsetpos
+ftell
+fwrite
+gamma
+getc
+getchar
+getenv
+getpid
+gets
+getw
+gmtime
+hypot
+ioctl
+isalnum
+isalpha
+isascii
+iscntrl
+isdigit
+isgraph
+islower
+isprint
+ispunct
+isspace
+isupper
+isxdigit
+labs
+ldexp
+ldiv
+lgamma
+localeconv
+localtime
+log
+log10
+log1p
+log2
+logb
+longjmp
+malloc
+mblen
+mbstowcs
+mbtowc
+memchr
+memcmp
+memcpy
+memmove
+memset
+mktime
+modf
+modff
+nan
+nanf
+nearbyint
+nextafterd
+nextafterf
+open
+perror
+pow
+printf
+putc
+putchar
+puts
+putw
+qsort
+rand
+read
+realloc
+remainder
+remove
+remquo
+rename
+rewind
+rint
+rinttol
+round
+roundtol
+scalb
+scanf
+setbuf
+setlocale
+setvbuf
+sin
+sinh
+sprintf
+sqrt
+srand
+sscanf
+strcat
+strchr
+strcmp
+strcoll
+strcpy
+strcspn
+strerror
+strftime
+strlen
+strncat
+strncmp
+strncpy
+strpbrk
+strrchr
+strspn
+strstr
+strtod
+strtok
+strtol
+strtoul
+strxfrm
+system
+tan
+tanh
+time
+tmpfile
+tmpnam
+toascii
+tolower
+toupper
+trunc
+ungetc
+unlink
+vfprintf
+vprintf
+vsprintf
+wcstombs
+wctomb
+write
index 780fb2db9999fb797f511a78e3bc04594e617875..409ef460455b28be5e5a707f486bc549acf498fb 100644 (file)
@@ -1,37 +1,19 @@
-.ifndef DSTROOT
-DSTROOT != x=`pwd`/DSTROOT && mkdir -p $$x && echo $$x
-.endif
-.ifndef OBJROOT
-OBJROOT != x=`pwd`/OBJROOT && mkdir -p $$x && echo $$x
-.endif
-.ifndef SRCROOT
-SRCROOT != dirname `pwd`
-.endif
-.ifndef SYMROOT
-SYMROOT != x=`pwd`/SYMROOT && mkdir -p $$x && echo $$x
-.endif
-ARCH != arch
-.ifndef RC_ARCHS
-RC_ARCHS = $(ARCH)
-RC_$(RC_ARCHS) = 1
-.endif
+NAME = libc
+
 NARCHS != echo $(RC_ARCHS) | wc -w
 .ifdef ALTUSRLOCALLIBSYSTEM
 LIBSYS = $(ALTUSRLOCALLIBSYSTEM)
 .else
 NARCHS != echo $(RC_ARCHS) | wc -w
 .ifdef ALTUSRLOCALLIBSYSTEM
 LIBSYS = $(ALTUSRLOCALLIBSYSTEM)
 .else
-LIBSYS = $(NEXT_ROOT)/usr/local/lib/system
+LIBSYS = $(SDKROOT)/usr/local/lib/system
 .endif
 NJOBS != perl -e '$$n = `/usr/sbin/sysctl -n hw.ncpu`; printf "%d\n", $$n < 2 ? 2 : ($$n * 1.5)'
 BSDMAKE = bsdmake -f Makefile
 BSDMAKEJ = $(BSDMAKE) -j $(NJOBS)
 
 .endif
 NJOBS != perl -e '$$n = `/usr/sbin/sysctl -n hw.ncpu`; printf "%d\n", $$n < 2 ? 2 : ($$n * 1.5)'
 BSDMAKE = bsdmake -f Makefile
 BSDMAKEJ = $(BSDMAKE) -j $(NJOBS)
 
-# This variables are to guarantee that the left-hand side of an expression is
+# These variables are to guarantee that the left-hand side of an expression is
 # always a variable
 dynamic = dynamic
 
 # always a variable
 dynamic = dynamic
 
-# Remove the arch stuff, since we know better here.
-LOCAL_CFLAGS != echo $(RC_CFLAGS) | sed 's/ *-arch [^ ][^ ]*//g'
-
 FORMS := debug dynamic profile
 
 all: build
 FORMS := debug dynamic profile
 
 all: build
@@ -55,27 +37,37 @@ SUFFIX$(F) =
 .else
 SUFFIX$(F) = _$(F)
 .endif
 .else
 SUFFIX$(F) = _$(F)
 .endif
-LIPOARGS$(F) != perl -e 'printf "%s\n", join(" ", map(qq(-arch $$_ \"$(OBJROOT)/$$_/$(F)/libc$(SUFFIX$(F)).a\"), qw($(RC_ARCHS))))'
+LIPOARGS$(F) != perl -e 'printf "%s\n", join(" ", map(qq(-arch $$_ \"$(OBJROOT)/$$_/$(F)/$(NAME)$(SUFFIX$(F)).a\"), qw($(RC_ARCHS))))'
 
 .for A in $(RC_ARCHS)
 build-$(F): build-$(A)-$(F)
 .endfor # RC_ARCHS
 build-$(F):
 .if $(NARCHS) == 1
 
 .for A in $(RC_ARCHS)
 build-$(F): build-$(A)-$(F)
 .endfor # RC_ARCHS
 build-$(F):
 .if $(NARCHS) == 1
-       cp -p "$(OBJROOT)/$(RC_ARCHS)/$(F)/libc$(SUFFIX$(F)).a" "$(SYMROOT)"
+       cp -p "$(OBJROOT)/$(RC_ARCHS)/$(F)/$(NAME)$(SUFFIX$(F)).a" "$(SYMROOT)"
 .else
 .else
-       lipo -create $(LIPOARGS$(F)) -output "$(SYMROOT)/libc$(SUFFIX$(F)).a"
+       lipo -create $(LIPOARGS$(F)) -output "$(SYMROOT)/$(NAME)$(SUFFIX$(F)).a"
 .endif
 .endif
-       ranlib "$(SYMROOT)/libc$(SUFFIX$(F)).a"
+       ranlib "$(SYMROOT)/$(NAME)$(SUFFIX$(F)).a"
 
 .for A in $(RC_ARCHS)
 build-$(A)-$(F): $(OBJROOT)/$(A)/libsystem.o
        mkdir -p '$(OBJROOT)/$(A)/$(F)'
        @set -x && \
            cd '$(OBJROOT)/$(A)/$(F)' && \
 
 .for A in $(RC_ARCHS)
 build-$(A)-$(F): $(OBJROOT)/$(A)/libsystem.o
        mkdir -p '$(OBJROOT)/$(A)/$(F)'
        @set -x && \
            cd '$(OBJROOT)/$(A)/$(F)' && \
-           ditto -arch $(A) '$(LIBSYS)/libc-partial$(SUFFIX$(F)).a' . && \
-           ar x 'libc-partial$(SUFFIX$(F)).a' && \
-           ditto -arch $(A) '$(LIBSYS)/libsyscall$(SUFFIX$(F)).a' . && \
+           if lipo -info '$(LIBSYS)/$(NAME)-partial$(SUFFIX$(F)).a' | grep -q '^Non-'; then \
+               cp -p '$(LIBSYS)/$(NAME)-partial$(SUFFIX$(F)).a' .; \
+           else \
+               arch=`lipo -detailed_info '$(LIBSYS)/$(NAME)-partial$(SUFFIX$(F)).a' | sed -E -n 's/.*architecture:? //p' | sort | grep '^$(A)' | head -n 1` && \
+               lipo -thin $$arch '$(LIBSYS)/$(NAME)-partial$(SUFFIX$(F)).a' -output '$(NAME)-partial$(SUFFIX$(F)).a'; \
+           fi && \
+           ar x '$(NAME)-partial$(SUFFIX$(F)).a' && \
+           if lipo -info '$(LIBSYS)/libsyscall$(SUFFIX$(F)).a' | grep -q '^Non-'; then \
+               cp -p '$(LIBSYS)/libsyscall$(SUFFIX$(F)).a' .; \
+           else \
+               arch=`lipo -detailed_info '$(LIBSYS)/libsyscall$(SUFFIX$(F)).a' | sed -E -n 's/.*architecture:? //p' | sort | grep '^$(A)' | head -n 1` && \
+               lipo -thin $$arch '$(LIBSYS)/libsyscall$(SUFFIX$(F)).a' -output 'libsyscall$(SUFFIX$(F)).a'; \
+           fi && \
            ar x 'libsyscall$(SUFFIX$(F)).a' && \
            '$(SRCROOT)/libsys/build-libc.pl' '$(LIBSYS)' '$(OBJROOT)/$(A)/$(F)' && \
            ln -s ../libsystem.o && \
            ar x 'libsyscall$(SUFFIX$(F)).a' && \
            '$(SRCROOT)/libsys/build-libc.pl' '$(LIBSYS)' '$(OBJROOT)/$(A)/$(F)' && \
            ln -s ../libsystem.o && \
@@ -90,17 +82,17 @@ $(OBJROOT)/$(A)/libsystem.o: $(OBJROOT)/libsystem.c
 .endfor # RC_ARCHS
 
 $(OBJROOT)/libsystem.c:
 .endfor # RC_ARCHS
 
 $(OBJROOT)/libsystem.c:
-       /Developer/Makefiles/bin/version.pl Libsystem > $(.TARGET)
+       $(SDKROOT)/Developer/Makefiles/bin/version.pl Libsystem > $(.TARGET)
 
 installhdrs:
 
 .for F in $(FORMS)
 BI-install-$(F): build-$(F)
        mkdir -p "$(DSTROOT)/usr/local/lib/system"
 
 installhdrs:
 
 .for F in $(FORMS)
 BI-install-$(F): build-$(F)
        mkdir -p "$(DSTROOT)/usr/local/lib/system"
-       @echo "Installing libc$(SUFFIX$(F)).a"
-       install "$(SYMROOT)/libc$(SUFFIX$(F)).a" "$(DSTROOT)/usr/local/lib/system"
-       ranlib "$(DSTROOT)/usr/local/lib/system/libc$(SUFFIX$(F)).a"
-       chmod 0444 "$(DSTROOT)/usr/local/lib/system/libc$(SUFFIX$(F)).a"
+       @echo "===== Installing $(NAME)$(SUFFIX$(F)).a ====="
+       install "$(SYMROOT)/$(NAME)$(SUFFIX$(F)).a" "$(DSTROOT)/usr/local/lib/system"
+       ranlib "$(DSTROOT)/usr/local/lib/system/$(NAME)$(SUFFIX$(F)).a"
+       chmod 0444 "$(DSTROOT)/usr/local/lib/system/$(NAME)$(SUFFIX$(F)).a"
 .endfor # FORMS
 
 install-all: build
 .endfor # FORMS
 
 install-all: build
index 11519b0278c5c596b94f91a33b5951f2e3bd55f7..ff11e1d8df248f1b7707a3f0e5e5ae20583f4dd1 100755 (executable)
@@ -64,9 +64,9 @@ my $SyscallBase = 'libc.syscall';
 # list.
 ##########################################################################
 sub processLibc {
 # list.
 ##########################################################################
 sub processLibc {
-    my($arch, $dir) = @_;
+    my($arch, $dir, $sufname) = @_;
     local $_;
     local $_;
-    my $file = File::Spec->join($dir, 'libc-partial.a');
+    my $file = File::Spec->join($dir, "libc-partial$sufname.a");
     my $f = IO::File->new("nm -g -arch $arch $file |");
     die "$MyName: nm -g -arch $arch $file: $!\n" unless defined($f);
     while(<$f>) {
     my $f = IO::File->new("nm -g -arch $arch $file |");
     die "$MyName: nm -g -arch $arch $file: $!\n" unless defined($f);
     while(<$f>) {
@@ -85,7 +85,12 @@ sub readLibcSyscalls {
     local $_;
     my @files = (File::Spec->join($dir, $SyscallBase));
     my $archfile = File::Spec->join($dir, "$SyscallBase.$arch");
     local $_;
     my @files = (File::Spec->join($dir, $SyscallBase));
     my $archfile = File::Spec->join($dir, "$SyscallBase.$arch");
-    push(@files, $archfile) if -r $archfile;
+    if(-r $archfile) {
+       push(@files, $archfile);
+    } elsif($arch =~ s/^armv.*/arm/) {
+       $archfile = File::Spec->join($dir, "$SyscallBase.$arch");
+       push(@files, $archfile) if -r $archfile;
+    }
     foreach my $file (@files) {
        my $f = IO::File->new($file, 'r');
        die "$MyName: $file: $!\n" unless defined($f);
     foreach my $file (@files) {
        my $f = IO::File->new($file, 'r');
        die "$MyName: $file: $!\n" unless defined($f);
@@ -142,7 +147,7 @@ die "$MyName: $form: Unknown form\n" unless defined($suf);
 my($suffix, $sufname) = @$suf;
 readStub($usr_local_lib_system);
 readLibcSyscalls($arch, $usr_local_lib_system);
 my($suffix, $sufname) = @$suf;
 readStub($usr_local_lib_system);
 readLibcSyscalls($arch, $usr_local_lib_system);
-processLibc($arch, $usr_local_lib_system);
+processLibc($arch, $usr_local_lib_system, $sufname);
 
 ##########################################################################
 # Invert the Stub hash, so the key will correspond to the file to process.
 
 ##########################################################################
 # Invert the Stub hash, so the key will correspond to the file to process.