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 xsave
  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         getcontext_extd \
  54         writev
  55 
  56 CPPFLAGS += -D_REENTRANT
  57 PROGS32 = $(PROGS:%=%.32)
  58 PROGS64 = $(PROGS:%=%.64)
  59 
  60 ROOTOPTDIR = $(ROOT)/opt/os-tests/tests
  61 ROOTOPTPROGS = $(PROGS32:%=$(ROOTOPTDIR)/%) \
  62         $(PROGS64:%=$(ROOTOPTDIR)/%) \
  63         $(SCRIPTS:%=$(ROOTOPTDIR)/%)
  64 
  65 odirectory.32 :=        LDLIBS += -lsocket
  66 odirectory.64 :=        LDLIBS64 += -lsocket
  67 
  68 OS-6097.32 :=   LDLIBS += -ldlpi
  69 OS-6097.64 :=   LDLIBS64 += -ldlpi
  70 
  71 clock_gettime.32 :=     LDLIBS += -lproc
  72 clock_gettime.32 :=     CSTD = $(CSTD_GNU99)
  73 clock_gettime.64 :=     LDLIBS64 += -lproc
  74 clock_gettime.64 :=     CSTD = $(CSTD_GNU99)
  75 
  76 ucontext.32 :=          SMOFF += unreachable
  77 ucontext.64 :=          SMOFF += unreachable
  78 
  79 writev.32 :=            CPPFLAGS += -D_FILE_OFFSET_BITS=64
  80 writev.32 :=            CSTD = $(CSTD_GNU99)
  81 writev.64 :=            CSTD = $(CSTD_GNU99)
  82 
  83 include $(SRC)/cmd/Makefile.cmd
  84 
  85 all     :=      TARGET = all
  86 install :=      TARGET = install
  87 clean   :=      TARGET = clean
  88 clobber :=      TARGET = clobber
  89 
  90 .KEEP_STATE:
  91 
  92 install: $(SUBDIRS) $(ROOTOPTPROGS)
  93 
  94 all: $(SUBDIRS) $(PROGS32) $(PROGS64)
  95 
  96 clean: $(SUBDIRS)
  97 
  98 $(ROOTOPTPROGS): $(PROGS32) $(PROGS64) $(ROOTOPTDIR)
  99 
 100 $(ROOTOPTDIR):
 101         $(INS.dir)
 102 
 103 $(ROOTOPTDIR)/%: %
 104         $(INS.file)
 105 
 106 $(ROOTOPTDIR)/%: %.ksh
 107         $(INS.rename)
 108 
 109 %.64: %.c
 110         $(LINK64.c) -o $@ $< $(LDLIBS64)
 111         $(POST_PROCESS)
 112 
 113 %.32: %.c
 114         $(LINK.c) -o $@ $< $(LDLIBS)
 115         $(POST_PROCESS)
 116 
 117 clobber: $(SUBDIRS)
 118         $(RM) $(PROGS32) $(PROGS64)
 119 
 120 $(SUBDIRS): FRC
 121         @cd $@; pwd; $(MAKE) $(TARGET)
 122 
 123 FRC: