| 1 | # ========== Copyright Header Begin ========================================== |
| 2 | # |
| 3 | # Hypervisor Software File: Makefile |
| 4 | # |
| 5 | # Copyright (c) 2006 Sun Microsystems, Inc. All Rights Reserved. |
| 6 | # |
| 7 | # - Do no alter or remove copyright notices |
| 8 | # |
| 9 | # - Redistribution and use of this software in source and binary forms, with |
| 10 | # or without modification, are permitted provided that the following |
| 11 | # conditions are met: |
| 12 | # |
| 13 | # - Redistribution of source code must retain the above copyright notice, |
| 14 | # this list of conditions and the following disclaimer. |
| 15 | # |
| 16 | # - Redistribution in binary form must reproduce the above copyright notice, |
| 17 | # this list of conditions and the following disclaimer in the |
| 18 | # documentation and/or other materials provided with the distribution. |
| 19 | # |
| 20 | # Neither the name of Sun Microsystems, Inc. or the names of contributors |
| 21 | # may be used to endorse or promote products derived from this software |
| 22 | # without specific prior written permission. |
| 23 | # |
| 24 | # This software is provided "AS IS," without a warranty of any kind. |
| 25 | # ALL EXPRESS OR IMPLIED CONDITIONS, REPRESENTATIONS AND WARRANTIES, |
| 26 | # INCLUDING ANY IMPLIED WARRANTY OF MERCHANTABILITY, FITNESS FOR A |
| 27 | # PARTICULAR PURPOSE OR NON-INFRINGEMENT, ARE HEREBY EXCLUDED. SUN |
| 28 | # MICROSYSTEMS, INC. ("SUN") AND ITS LICENSORS SHALL NOT BE LIABLE FOR |
| 29 | # ANY DAMAGES SUFFERED BY LICENSEE AS A RESULT OF USING, MODIFYING OR |
| 30 | # DISTRIBUTING THIS SOFTWARE OR ITS DERIVATIVES. IN NO EVENT WILL SUN |
| 31 | # OR ITS LICENSORS BE LIABLE FOR ANY LOST REVENUE, PROFIT OR DATA, OR |
| 32 | # FOR DIRECT, INDIRECT, SPECIAL, CONSEQUENTIAL, INCIDENTAL OR PUNITIVE |
| 33 | # DAMAGES, HOWEVER CAUSED AND REGARDLESS OF THE THEORY OF LIABILITY, |
| 34 | # ARISING OUT OF THE USE OF OR INABILITY TO USE THIS SOFTWARE, EVEN IF |
| 35 | # SUN HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. |
| 36 | # |
| 37 | # You acknowledge that this software is not designed, licensed or |
| 38 | # intended for use in the design, construction, operation or maintenance of |
| 39 | # any nuclear facility. |
| 40 | # |
| 41 | # ========== Copyright Header End ============================================ |
| 42 | # id: @(#)Makefile 1.2 04/08/17 |
| 43 | # purpose: |
| 44 | # copyright: Copyright 2004 Sun Microsystems, Inc. All Rights Reserved |
| 45 | # copyright: Use is subject to license terms. |
| 46 | |
| 47 | ROOT = ../.. |
| 48 | |
| 49 | include ${ROOT}/default.mk |
| 50 | |
| 51 | INSTALLDIR = ${ROOT}/lib |
| 52 | TARGET = libsa.a |
| 53 | TARGETDIR = ${INSTALLDIR}/ |
| 54 | PROMIF = ${ROOT}/tools/promif |
| 55 | |
| 56 | CC32 = ${CC5} |
| 57 | CFLAGS32 = |
| 58 | |
| 59 | CC64 = ${CC5} |
| 60 | CFLAGS64 = -xarch=v9 |
| 61 | |
| 62 | ASFLAGS32 = -I/usr/include -I/usr/include/v9 |
| 63 | |
| 64 | ASFLAGS64 = -D__sparcv9 -I/usr/include/v9 |
| 65 | |
| 66 | CCSBIN = /usr/ccs/bin |
| 67 | AR = ${CCSBIN}/ar |
| 68 | ARFLAGS = cr |
| 69 | LORDER = ${CCSBIN}/lorder |
| 70 | TSORT = ${CCSBIN}/tsort |
| 71 | |
| 72 | INCS = -I${PROMIF}/include -I${PROMIF}/include/sun4u \ |
| 73 | -I${PROMIF}/include/v9 -I/usr/include |
| 74 | |
| 75 | CFLAGS = ${INCS} |
| 76 | |
| 77 | LIBRARY_sparc = $(TARGETDIR)libsa.a |
| 78 | LIBRARY_sparcv9 = $(TARGETDIR)sparcv9/libsa.a |
| 79 | |
| 80 | .KEEP_STATE: |
| 81 | .PARALLEL: |
| 82 | .SILENT: |
| 83 | |
| 84 | MKDIR = mkdir -p |
| 85 | |
| 86 | SFILES = crt0.s |
| 87 | |
| 88 | CFILES = common/prom_2path.c \ |
| 89 | common/prom_boot.c \ |
| 90 | common/prom_console.c \ |
| 91 | common/prom_enter.c \ |
| 92 | common/prom_exit.c \ |
| 93 | common/prom_findnode.c \ |
| 94 | common/prom_gettime.c \ |
| 95 | common/prom_handler.c \ |
| 96 | common/prom_interp.c \ |
| 97 | common/prom_io.c \ |
| 98 | common/prom_node.c \ |
| 99 | common/prom_panic.c \ |
| 100 | common/prom_path.c \ |
| 101 | common/prom_phandle.c \ |
| 102 | common/prom_printf.c \ |
| 103 | common/prom_prop.c \ |
| 104 | common/prom_propnames.c \ |
| 105 | common/prom_reboot.c \ |
| 106 | common/prom_string.c \ |
| 107 | common/prom_sysnodes.c \ |
| 108 | common/prom_test.c \ |
| 109 | sun4u/prom_alloc.c \ |
| 110 | sun4u/prom_cpuctl.c \ |
| 111 | sun4u/prom_heartbeat.c \ |
| 112 | sun4u/prom_init.c \ |
| 113 | sun4u/prom_mem.c \ |
| 114 | sun4u/prom_mmu.c \ |
| 115 | sun4u/prom_power_off.c \ |
| 116 | sun4u/prom_retain.c \ |
| 117 | sun4u/prom_set_traptable.c \ |
| 118 | sun4u/prom_sparc.c \ |
| 119 | common/prom_file.c \ |
| 120 | common/prom_mapin.c \ |
| 121 | common/prom_ioctl.c \ |
| 122 | prom_glue.c \ |
| 123 | memz.c |
| 124 | |
| 125 | HDRS = include/sys/obpdefs.h \ |
| 126 | include/sys/promif.h \ |
| 127 | include/sys/promimpl.h \ |
| 128 | include/sun4u/sys/prom_plat.h \ |
| 129 | include/v9/sys/prom_isa.h |
| 130 | |
| 131 | OBJS = $(CFILES:%.c=%.o) $(SFILES:%.s=%.o) |
| 132 | |
| 133 | OBJS_sparcv9 = $(OBJS:%=sparcv9/%) |
| 134 | |
| 135 | OBJS_sparc = $(OBJS:%=sparc/%) |
| 136 | |
| 137 | TARGETS:sh = echo "sparc \${TARGETDIR}\${TARGET} " ; \ |
| 138 | if [ -x /usr/bin/isalist ]; \ |
| 139 | then if [ ! -z "`/usr/bin/isalist | grep v9`" ]; \ |
| 140 | then echo "sparcv9 \${TARGETDIR}sparcv9/\${TARGET}"; fi; fi; |
| 141 | |
| 142 | OBPDEFS = ${ROOT}/include/sys/obpdefs.h |
| 143 | |
| 144 | all: sparcv9 ${TARGETDIR}sparcv9 ${LIBRARY_sparcv9} ${OBPDEFS} |
| 145 | |
| 146 | ${ROOT}/include/sys: |
| 147 | ${MKDIR} ${ROOT}/include/sys |
| 148 | |
| 149 | ${ROOT}/include/sys/obpdefs.h: ${PROMIF}/include/sys/obpdefs.h |
| 150 | ${ROOT}/include/sys/obpdefs.h: ${ROOT}/include/sys |
| 151 | cp -f ${PROMIF}/include/sys/obpdefs.h ${ROOT}/include/sys |
| 152 | |
| 153 | # Not building 32-bit promif library because crt0.s |
| 154 | # file doesn't support it yet |
| 155 | # all: ${TARGETS} |
| 156 | |
| 157 | sparc: |
| 158 | if [ ! -x $@ ]; then ${MKDIR} $@; ${MKDIR} $@/common; \ |
| 159 | ${MKDIR} $@/sun4u ; fi |
| 160 | |
| 161 | sparc/%.o: %.c |
| 162 | $(CC32) $(CFLAGS32) $(CFLAGS) -c $< -o $@ |
| 163 | |
| 164 | sparc/%.o: %.s |
| 165 | $(AS) $(ASFLAGS32) -P -D_ASM -xarch=v8plus $< -o $@ |
| 166 | |
| 167 | AROBJS_sparc = `${LORDER} ${OBJS_sparc} | ${TSORT}` |
| 168 | |
| 169 | ${LIBRARY_sparc}: ${OBJS_sparc} |
| 170 | ${AR} ${ARFLAGS} $@ ${AROBJS_sparc} |
| 171 | |
| 172 | ${TARGETDIR}sparcv9: |
| 173 | if [ ! -x $@ ]; then ${MKDIR} $@; fi |
| 174 | |
| 175 | sparcv9: |
| 176 | if [ ! -x $@ ]; then ${MKDIR} $@; ${MKDIR} $@/common; \ |
| 177 | ${MKDIR} $@/sun4u ; fi |
| 178 | |
| 179 | sparcv9/%.o: %.c |
| 180 | $(CC64) $(CFLAGS64) $(CFLAGS) -c $< -o $@ |
| 181 | |
| 182 | sparcv9/%.o: %.s |
| 183 | $(AS) $(ASFLAGS64) -P -D_ASM -xarch=v9 $< -o $@ |
| 184 | |
| 185 | AROBJS_sparcv9 = `${LORDER} ${OBJS_sparcv9} | ${TSORT}` |
| 186 | |
| 187 | ${OBJS_sparcv9}: ${HDRS} |
| 188 | |
| 189 | ${LIBRARY_sparcv9}: ${OBJS_sparcv9} |
| 190 | ${AR} ${ARFLAGS} $@ ${AROBJS_sparcv9} |
| 191 | |
| 192 | clean: |
| 193 | /bin/rm -f ${OBJS_sparcv9} ${LIBRARY_sparcv9} ${OBPDEFS} |
| 194 | |
| 195 | clobber: |
| 196 | ${SCCS} clean |
| 197 | |