1915894efSMatt Barden#
2915894efSMatt Barden# This file and its contents are supplied under the terms of the
3915894efSMatt Barden# Common Development and Distribution License ("CDDL"), version 1.0.
4915894efSMatt Barden# You may only use this file in accordance with the terms of version
5915894efSMatt Barden# 1.0 of the CDDL.
6915894efSMatt Barden#
7915894efSMatt Barden# A full copy of the text of the CDDL should have accompanied this
8915894efSMatt Barden# source.  A copy of the CDDL is also available via the Internet at
9915894efSMatt Barden# http://www.illumos.org/license/CDDL.
10915894efSMatt Barden#
11915894efSMatt Barden
12915894efSMatt Barden#
13915894efSMatt Barden# Copyright 2020 Oxide Computer Company
14915894efSMatt Barden# Copyright 2021 Tintri by DDN, Inc. All rights reserved.
15915894efSMatt Barden#
16915894efSMatt Barden
17915894efSMatt BardenPROGS = stackalign
18915894efSMatt Barden
19915894efSMatt BardenPROGS32 = $(PROGS:%=%.32)
20915894efSMatt BardenPROGS64 = $(PROGS:%=%.64)
21915894efSMatt Barden
22915894efSMatt BardenOBJS = $(PROGS32:%=%.o) $(PROGS64:%=%.o)
23915894efSMatt Barden$(INTEL_BLD)OBJS += stack_i386.o stack_amd64.o
2449950d9cSToomas Soome$(SPARC_BLD)OBJS += stack_sparc.o stack_sparcv9.o
25915894efSMatt Barden
26915894efSMatt BardenROOTOPTDIR = $(ROOT)/opt/os-tests/tests
27915894efSMatt BardenROOTOPTSTACK = $(ROOTOPTDIR)/stackalign
28915894efSMatt BardenROOTOPTPROGS = $(PROGS32:%=$(ROOTOPTSTACK)/%) $(PROGS64:%=$(ROOTOPTSTACK)/%)
29915894efSMatt Barden
30915894efSMatt Bardeninclude $(SRC)/cmd/Makefile.cmd
31915894efSMatt Barden
32*5d9d9091SRichard LoweASFLAGS += -D_ASM
33*5d9d9091SRichard LoweASFLAGS64 += -D_ASM
34915894efSMatt BardenCFLAGS += -D_REENTRANT
35915894efSMatt Barden$(INTEL_BLD)LDFLAGS += -Wl,-zinitarray=get_stack_at_init
3649950d9cSToomas Soome$(SPARC_BLD)LDFLAGS += -Wl,-zinitarray=get_stack_at_init
37915894efSMatt Barden
38915894efSMatt Barden.KEEP_STATE:
39915894efSMatt Barden
40915894efSMatt Bardenall: $(PROGS32) $(PROGS64)
41915894efSMatt Barden
42915894efSMatt Bardeninstall: $(ROOTOPTPROGS)
43915894efSMatt Barden
44915894efSMatt Bardenclean:
45915894efSMatt Barden	-$(RM) $(OBJS)
46915894efSMatt Barden
47915894efSMatt Barden$(ROOTOPTPROGS): $(PROGS32) $(PROGS64) $(ROOTOPTSTACK)
48915894efSMatt Barden
49915894efSMatt Barden$(ROOTOPTDIR):
50915894efSMatt Barden	$(INS.dir)
51915894efSMatt Barden
52915894efSMatt Barden$(ROOTOPTSTACK): $(ROOTOPTDIR)
53915894efSMatt Barden	$(INS.dir)
54915894efSMatt Barden
55915894efSMatt Barden$(ROOTOPTSTACK)/%: %
56915894efSMatt Barden	$(INS.file)
57915894efSMatt Barden
58915894efSMatt Barden%.64.o: %.c
59915894efSMatt Barden	$(COMPILE64.c) $< -o $@
60915894efSMatt Barden
61915894efSMatt Barden%.32.o: %.c
62915894efSMatt Barden	$(COMPILE.c) $< -o $@
63915894efSMatt Barden
64*5d9d9091SRichard Lowestack_$(MACH).o: stack_$(MACH).S
65915894efSMatt Barden	$(COMPILE.s) $< -o $@
66915894efSMatt Barden
67*5d9d9091SRichard Lowestack_$(MACH64).o: stack_$(MACH64).S
68915894efSMatt Barden	$(COMPILE64.s) $< -o $@
69915894efSMatt Barden
7049950d9cSToomas Soome%.64: %.64.o stack_$(MACH64).o
71915894efSMatt Barden	$(LINK64.c) -o $@ $^ $(LDLIBS64)
72915894efSMatt Barden	$(POST_PROCESS)
73915894efSMatt Barden
7449950d9cSToomas Soome%.32: %.32.o stack_$(MACH).o
75915894efSMatt Barden	$(LINK.c) -o $@ $^ $(LDLIBS)
76915894efSMatt Barden	$(POST_PROCESS)
77915894efSMatt Barden
78915894efSMatt Bardenclobber: clean
79915894efSMatt Barden	$(RM) $(PROGS32) $(PROGS64)
80915894efSMatt Barden
81915894efSMatt BardenFRC:
82