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 2026 Oxide Computer Company 14# 15 16PROGS = posix_spawn_chdir posix_spawn_fileactions posix_spawn_attr \ 17 posix_spawn_defpath posix_spawn_path posix_spawn_pipe_np \ 18 posix_spawn_priv posix_spawn_wait 19 20HELPERS32 = posix_spawn_child.32 21HELPERS64 = posix_spawn_child.64 22 23DATA = posix_spawn_noshebang 24 25COMMON_OBJS32 = posix_spawn_common.32.o 26COMMON_OBJS64 = posix_spawn_common.64.o 27 28PROGS32 = $(PROGS:%=%.32) $(HELPERS32) 29PROGS64 = $(PROGS:%=%.64) $(HELPERS64) 30OBJS32 = $(PROGS32:%=%.o) $(COMMON_OBJS32) 31OBJS64 = $(PROGS64:%=%.o) $(COMMON_OBJS64) 32 33ROOTOPTDIR = $(ROOT)/opt/libc-tests/tests 34ROOTOPTSPAWN = $(ROOTOPTDIR)/posix_spawn 35ROOTOPTPROGS = $(PROGS32:%=$(ROOTOPTSPAWN)/%) \ 36 $(PROGS64:%=$(ROOTOPTSPAWN)/%) 37ROOTOPTDATA = $(DATA:%=$(ROOTOPTSPAWN)/%) 38 39include $(SRC)/cmd/Makefile.cmd 40include $(SRC)/cmd/Makefile.ctf 41 42CSTD = $(CSTD_GNU17) 43CPPFLAGS += -D_REENTRANT 44CTF_MODE = link 45 46posix_spawn_priv.32 := LDLIBS += -lproc 47posix_spawn_priv.64 := LDLIBS64 += -lproc 48posix_spawn_wait.32 := LDLIBS += -lproc 49posix_spawn_wait.64 := LDLIBS64 += -lproc 50 51.KEEP_STATE: 52 53all: $(PROGS32) $(PROGS64) 54 55$(ROOTOPTSPAWN)/posix_spawn_noshebang := FILEMODE = 0555 56 57install: $(ROOTOPTPROGS) $(ROOTOPTDATA) 58 59$(ROOTOPTDIR): 60 $(INS.dir) 61 62$(ROOTOPTSPAWN): $(ROOTOPTDIR) 63 $(INS.dir) 64 65$(ROOTOPTPROGS): $(PROGS32) $(PROGS64) $(ROOTOPTSPAWN) 66$(ROOTOPTDATA): $(ROOTOPTSPAWN) 67 68$(ROOTOPTSPAWN)/%: % 69 $(INS.file) 70 71%.32.o: %.c 72 $(COMPILE.c) -o $@ $< 73 $(POST_PROCESS_O) 74 75%.32: %.32.o $(COMMON_OBJS32) 76 $(LINK.c) -o $@ $< $(COMMON_OBJS32) $(LDLIBS) 77 $(POST_PROCESS) 78 79%.64.o: %.c 80 $(COMPILE64.c) -o $@ $< 81 $(POST_PROCESS_O) 82 83%.64: %.64.o $(COMMON_OBJS64) 84 $(LINK64.c) -o $@ $< $(COMMON_OBJS64) $(LDLIBS64) 85 $(POST_PROCESS) 86 87clean: 88 $(RM) $(OBJS32) $(OBJS64) 89 90clobber: clean 91 $(RM) $(PROGS32) $(PROGS64) 92