xref: /illumos-gate/usr/src/test/libc-tests/tests/posix_spawn/Makefile (revision ac2250cb76bb32944fd2c8a3ba2cd3f79747748d)
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