Mon, 23 Mar 2009 17:58:32 -0700
Merge
duke@1 | 1 | # |
duke@1 | 2 | # Copyright 1998-2005 Sun Microsystems, Inc. All Rights Reserved. |
duke@1 | 3 | # DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. |
duke@1 | 4 | # |
duke@1 | 5 | # This code is free software; you can redistribute it and/or modify it |
duke@1 | 6 | # under the terms of the GNU General Public License version 2 only, as |
duke@1 | 7 | # published by the Free Software Foundation. Sun designates this |
duke@1 | 8 | # particular file as subject to the "Classpath" exception as provided |
duke@1 | 9 | # by Sun in the LICENSE file that accompanied this code. |
duke@1 | 10 | # |
duke@1 | 11 | # This code is distributed in the hope that it will be useful, but WITHOUT |
duke@1 | 12 | # ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or |
duke@1 | 13 | # FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License |
duke@1 | 14 | # version 2 for more details (a copy is included in the LICENSE file that |
duke@1 | 15 | # accompanied this code). |
duke@1 | 16 | # |
duke@1 | 17 | # You should have received a copy of the GNU General Public License version |
duke@1 | 18 | # 2 along with this work; if not, write to the Free Software Foundation, |
duke@1 | 19 | # Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. |
duke@1 | 20 | # |
duke@1 | 21 | # Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara, |
duke@1 | 22 | # CA 95054 USA or visit www.sun.com if you need additional information or |
duke@1 | 23 | # have any questions. |
duke@1 | 24 | # |
duke@1 | 25 | |
duke@1 | 26 | # |
duke@1 | 27 | # Makefile for linking with mapfiles. |
duke@1 | 28 | # |
duke@1 | 29 | # NOTE: Not using a mapfile will expose all your extern functions and |
duke@1 | 30 | # extern data symbols as part of your interface, so unless your |
duke@1 | 31 | # extern names are safe from being mistaken as names from other |
duke@1 | 32 | # libraries, you better use a mapfile, or use a unique naming |
duke@1 | 33 | # convention on all your extern symbols. |
duke@1 | 34 | # |
duke@1 | 35 | # The mapfile will establish versioning by defining the exported interface. |
duke@1 | 36 | # |
duke@1 | 37 | # The mapfile can also force certain .o files or elf sections into the |
duke@1 | 38 | # the different segments of the resulting library/program image. |
duke@1 | 39 | # |
duke@1 | 40 | # The macro FILES_m can contain any number of mapfiles. |
duke@1 | 41 | # |
duke@1 | 42 | |
duke@1 | 43 | # Always make sure 'all' is the default rule |
duke@1 | 44 | mapfile_default_rule: all |
duke@1 | 45 | |
duke@1 | 46 | ifeq ($(PLATFORM), solaris) |
duke@1 | 47 | |
duke@1 | 48 | ifeq ($(VARIANT), OPT) |
duke@1 | 49 | # OPT build MUST have a mapfile? |
duke@1 | 50 | ifndef FILES_m |
duke@1 | 51 | FILES_m = mapfile-vers |
duke@1 | 52 | endif |
duke@1 | 53 | |
duke@1 | 54 | # If we are re-ordering functions in this solaris library, we need to make |
duke@1 | 55 | # sure that -xF is added to the compile lines. This option is critical and |
duke@1 | 56 | # enables the functions to be reordered. |
duke@1 | 57 | ifdef FILES_reorder |
duke@1 | 58 | CFLAGS_OPT += -xF |
duke@1 | 59 | CXXFLAGS_OPT += -xF |
duke@1 | 60 | endif |
duke@1 | 61 | |
duke@1 | 62 | INIT += $(TEMPDIR)/mapfile-vers |
duke@1 | 63 | |
duke@1 | 64 | $(TEMPDIR)/mapfile-vers : $(FILES_m) $(FILES_reorder) |
duke@1 | 65 | $(prep-target) |
duke@1 | 66 | $(CAT) $(FILES_m) > $@ |
duke@1 | 67 | ifdef FILES_reorder |
duke@1 | 68 | $(SED) -e 's=OUTPUTDIR=$(OUTPUTDIR)=' $(FILES_reorder) >> $@ |
duke@1 | 69 | endif |
duke@1 | 70 | endif # VARIANT |
duke@1 | 71 | |
duke@1 | 72 | ifndef LDNOMAP |
duke@1 | 73 | LDMAPFLAGS_OPT = -M$(TEMPDIR)/mapfile-vers |
duke@1 | 74 | LDMAPFLAGS_DBG = $(FILES_m:%=-M%) |
duke@1 | 75 | endif |
duke@1 | 76 | |
duke@1 | 77 | endif # PLATFORM |
duke@1 | 78 | |
duke@1 | 79 | |
duke@1 | 80 | ifeq ($(PLATFORM), linux) |
duke@1 | 81 | |
duke@1 | 82 | ifeq ($(VARIANT), OPT) |
duke@1 | 83 | # OPT build MUST have a mapfile? |
duke@1 | 84 | ifndef FILES_m |
duke@1 | 85 | FILES_m = mapfile-vers |
duke@1 | 86 | endif |
duke@1 | 87 | endif # VARIANT |
duke@1 | 88 | |
duke@1 | 89 | ifndef LDNOMAP |
duke@1 | 90 | LDMAPFLAGS_OPT = $(FILES_m:%=-Xlinker -version-script=%) |
duke@1 | 91 | LDMAPFLAGS_DBG = $(FILES_m:%=-Xlinker -version-script=%) |
duke@1 | 92 | endif |
duke@1 | 93 | |
duke@1 | 94 | endif # PLATFORM |
duke@1 | 95 | |
duke@1 | 96 | LDFLAGS_OPT += $(LDMAPFLAGS_OPT) |
duke@1 | 97 | LDFLAGS_DBG += $(LDMAPFLAGS_DBG) |
duke@1 | 98 |