1 # 2 # CDDL HEADER START 3 # 4 # The contents of this file are subject to the terms of the 5 # Common Development and Distribution License (the "License"). 6 # You may not use this file except in compliance with the License. 7 # 8 # You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE 9 # or http://www.opensolaris.org/os/licensing. 10 # See the License for the specific language governing permissions 11 # and limitations under the License. 12 # 13 # When distributing Covered Code, include this CDDL HEADER in each 14 # file and include the License file at usr/src/OPENSOLARIS.LICENSE. 15 # If applicable, add the following below this CDDL HEADER, with the 16 # fields enclosed by brackets "[]" replaced with your own identifying 17 # information: Portions Copyright [yyyy] [name of copyright owner] 18 # 19 # CDDL HEADER END 20 # 21 # 22 # Copyright 2007 Sun Microsystems, Inc. All rights reserved. 23 # Use is subject to license terms. 24 # 25 26 PROG= file 27 XPG4PROG= file 28 MAGIC= magic 29 30 ELFCAP= $(SRC)/common/elfcap 31 SGSRTCID= $(SRC)/common/sgsrtcid 32 33 LOBJS= file.o elf_read32.o elf_read64.o magicutils.o 34 OBJS= $(LOBJS) elfcap.o 35 XPG4OBJS= $(OBJS:%.o=xpg4_%.o) 36 SRCS= file.c elf_read.c magicutils.c $(ELFCAP)/elfcap.c 37 38 include ../Makefile.cmd 39 40 CSTD= $(CSTD_GNU99) 41 C99LMODE= -Xc99=%all 42 43 CERRWARN += -_gcc=-Wno-uninitialized 44 CERRWARN += -_gcc=-Wno-type-limits 45 46 POFILE= file_all.po 47 POFILES= $(SRCS:%.c=%.po) 48 49 # The debug binary can be built using the flag 50 # -D COPTFLAG=-g CGLOBALSTATIC= 51 # This will avoid the multiple symbols definition error 52 # for static global variables in elf_read32.o and elf_read64.o 53 54 LDLIBS += -lelf 55 CPPFLAGS += -I$(ELFCAP) -I$(SGSRTCID) 56 $(XPG4) := CFLAGS += -DXPG4 57 58 ROOTETCMAGIC= $(MAGIC:%=$(ROOTETC)/%) 59 60 $(ROOTETCMAGIC) := FILEMODE = $(LIBFILEMODE) 61 62 .PARALLEL: $(OBJS) $(XPG4OBJS) $(POFILES) 63 64 .KEEP_STATE: 65 66 all: $(PROG) $(XPG4) $(MAGIC) 67 68 $(PROG) : $(OBJS) 69 $(LINK.c) $(OBJS) -o $@ $(LDLIBS) 70 $(POST_PROCESS) 71 72 $(XPG4) : $(XPG4OBJS) 73 $(LINK.c) $(XPG4OBJS) -o $@ $(LDLIBS) 74 $(POST_PROCESS) 75 76 %.o: %.c 77 $(COMPILE.c) -o $@ $< 78 79 %32.o: %.c 80 $(COMPILE.c) -o $@ $< 81 82 %64.o: %.c 83 $(COMPILE.c) -D_ELF64 -o $@ $< 84 85 xpg4_%.o: %.c 86 $(COMPILE.c) -o $@ $< 87 88 xpg4_%32.o: %.c 89 $(COMPILE.c) -o $@ $< 90 91 xpg4_%64.o: %.c 92 $(COMPILE.c) -D_ELF64 -o $@ $< 93 94 elfcap.o: $(ELFCAP)/elfcap.c 95 $(COMPILE.c) -o $@ $(ELFCAP)/elfcap.c 96 97 xpg4_elfcap.o: $(ELFCAP)/elfcap.c 98 $(COMPILE.c) -o $@ $(ELFCAP)/elfcap.c 99 100 $(POFILE): $(POFILES) 101 $(RM) $@ 102 cat $(POFILES) > $@ 103 104 install: all $(ROOTPROG) $(ROOTXPG4PROG) $(ROOTETCMAGIC) 105 106 clean: 107 $(RM) $(OBJS) $(XPG4OBJS) 108 109 lint: lint_SRCS 110 111 include ../Makefile.targ