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 (c) 1989, 2010, Oracle and/or its affiliates. All rights reserved.
  23 #
  24 # Copyright (c) 2018, Joyent, Inc.
  25 
  26 PROG= expr
  27 XPG4PROG= expr
  28 XPG6PROG= expr
  29 
  30 EXPROBJ= exprobjs/expr.o exprobjs/compile.o
  31 XPG4EXPROBJ= exprobjs.xpg4/expr.o exprobjs.xpg4/compile.o
  32 XPG6EXPROBJ= exprobjs.xpg6/expr.o exprobjs.xpg6/compile.o
  33 
  34 OBJS= $(EXPROBJ) $(XPG4EXPROBJ) $(XPG6EXPROBJ)
  35 SRCS= expr.c compile.c
  36 
  37 include ../Makefile.cmd
  38 
  39 CFLAGS += $(CCVERBOSE)
  40 CERRWARN += $(CNOWARN_UNINIT)
  41 CERRWARN += -_gcc=-Wno-extra
  42 # "missing type for func"
  43 SMATCH=off
  44 $(XPG4) := CFLAGS += -DXPG4
  45 $(XPG6) := CFLAGS += -DXPG6
  46 
  47 XGETFLAGS += -a -x expr.xcl
  48 
  49 LDLIBS += -lgen
  50 
  51 MAPFILES =      $(MAPFILE.INT) $(MAPFILE.NGB)
  52 LDFLAGS +=      $(MAPFILES:%=-M%)
  53 
  54 .KEEP_STATE:
  55 
  56 all: $(PROG) $(XPG4) $(XPG6)
  57 
  58 install: all $(ROOTPROG) $(ROOTXPG4PROG) $(ROOTXPG6PROG)
  59 
  60 $(PROG): exprobjs $(EXPROBJ) $(MAPFILES)
  61         $(LINK.c) $(EXPROBJ) -o $@ $(LDLIBS)
  62         $(POST_PROCESS)
  63 
  64 $(XPG4): exprobjs.xpg4 $(XPG4EXPROBJ) $(MAPFILES)
  65         $(LINK.c) $(XPG4EXPROBJ) -o $@ $(LDLIBS)
  66         $(POST_PROCESS)
  67 
  68 $(XPG6): exprobjs.xpg6 $(XPG6EXPROBJ) $(MAPFILES)
  69         $(LINK.c) $(XPG6EXPROBJ) -o $@ $(LDLIBS)
  70         $(POST_PROCESS)
  71 
  72 exprobjs/%.o:   %.c
  73         $(COMPILE.c) -o $@ $<
  74 
  75 exprobjs.xpg4/%.o:      %.c
  76         $(COMPILE.c) -o $@ $<
  77 
  78 exprobjs.xpg6/%.o:      %.c
  79         $(COMPILE.c) -o $@ $<
  80 
  81 exprobjs:
  82         -@mkdir -p $@
  83 
  84 exprobjs.xpg4:
  85         -@mkdir -p $@
  86 
  87 exprobjs.xpg6:
  88         -@mkdir -p $@
  89 
  90 clean:
  91         $(RM) $(OBJS)
  92 
  93 lint:   lint_PROG
  94 
  95 include ../Makefile.targ