1 #
   2 # This file and its contents are supplied under the terms of the
   3 # Common Development and Distribution License ("CDDL"), version 1.0.
   4 # You may only use this file in accordance with the terms of version
   5 # 1.0 of the CDDL.
   6 #
   7 # A full copy of the text of the CDDL should have accompanied this
   8 # source.  A copy of the CDDL is also available via the Internet at
   9 # http://www.illumos.org/license/CDDL.
  10 #
  11 
  12 #
  13 # Copyright (c) 2012, 2016 by Delphix. All rights reserved.
  14 # Copyright 2020 Joyent, Inc.
  15 # Copyright 2021 Tintri by DDN, Inc. All rights reserved.
  16 # Copyright 2021 OmniOS Community Edition (OmniOSce) Association.
  17 # Copyright 2023 Oxide Computer Company
  18 #
  19 
  20 SUBDIRS_i386 = i386 imc zen_umc
  21 
  22 SUBDIRS =       \
  23                 cores \
  24                 ddi_ufm \
  25                 definit \
  26                 file-locking \
  27                 ksensor \
  28                 libtopo \
  29                 pf_key \
  30                 poll \
  31                 portfs \
  32                 regression \
  33                 sdevfs \
  34                 secflags \
  35                 signalfd \
  36                 sigqueue \
  37                 sockfs \
  38                 spoof-ras \
  39                 stackalign \
  40                 stress \
  41                 syscall \
  42                 timer \
  43                 tmpfs \
  44                 uccid \
  45                 $(SUBDIRS_$(MACH))
  46 
  47 PROGS = \
  48         clock_gettime \
  49         eventfd \
  50         odirectory \
  51         OS-6097 \
  52         ucontext \
  53         writev
  54 
  55 CPPFLAGS += -D_REENTRANT
  56 PROGS32 = $(PROGS:%=%.32)
  57 PROGS64 = $(PROGS:%=%.64)
  58 
  59 ROOTOPTDIR = $(ROOT)/opt/os-tests/tests
  60 ROOTOPTPROGS = $(PROGS32:%=$(ROOTOPTDIR)/%) \
  61         $(PROGS64:%=$(ROOTOPTDIR)/%) \
  62         $(SCRIPTS:%=$(ROOTOPTDIR)/%)
  63 
  64 odirectory.32 :=        LDLIBS += -lsocket
  65 odirectory.64 :=        LDLIBS64 += -lsocket
  66 
  67 OS-6097.32 :=   LDLIBS += -ldlpi
  68 OS-6097.64 :=   LDLIBS64 += -ldlpi
  69 
  70 clock_gettime.32 :=     LDLIBS += -lproc
  71 clock_gettime.32 :=     CSTD = $(CSTD_GNU99)
  72 clock_gettime.64 :=     LDLIBS64 += -lproc
  73 clock_gettime.64 :=     CSTD = $(CSTD_GNU99)
  74 
  75 ucontext.32 :=          SMOFF += unreachable
  76 ucontext.64 :=          SMOFF += unreachable
  77 
  78 writev.32 :=            CPPFLAGS += -D_FILE_OFFSET_BITS=64
  79 writev.32 :=            CSTD = $(CSTD_GNU99)
  80 writev.64 :=            CSTD = $(CSTD_GNU99)
  81 
  82 include $(SRC)/cmd/Makefile.cmd
  83 
  84 all     :=      TARGET = all
  85 install :=      TARGET = install
  86 clean   :=      TARGET = clean
  87 clobber :=      TARGET = clobber
  88 
  89 .KEEP_STATE:
  90 
  91 install: $(SUBDIRS) $(ROOTOPTPROGS)
  92 
  93 all: $(SUBDIRS) $(PROGS32) $(PROGS64)
  94 
  95 clean: $(SUBDIRS)
  96 
  97 $(ROOTOPTPROGS): $(PROGS32) $(PROGS64) $(ROOTOPTDIR)
  98 
  99 $(ROOTOPTDIR):
 100         $(INS.dir)
 101 
 102 $(ROOTOPTDIR)/%: %
 103         $(INS.file)
 104 
 105 $(ROOTOPTDIR)/%: %.ksh
 106         $(INS.rename)
 107 
 108 %.64: %.c
 109         $(LINK64.c) -o $@ $< $(LDLIBS64)
 110         $(POST_PROCESS)
 111 
 112 %.32: %.c
 113         $(LINK.c) -o $@ $< $(LDLIBS)
 114         $(POST_PROCESS)
 115 
 116 clobber: $(SUBDIRS)
 117         $(RM) $(PROGS32) $(PROGS64)
 118 
 119 $(SUBDIRS): FRC
 120         @cd $@; pwd; $(MAKE) $(TARGET)
 121 
 122 FRC: