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 2020 Oxide Computer Company
14# Copyright 2021 Tintri by DDN, Inc. All rights reserved.
15#
16
17PROGS = stackalign
18
19PROGS32 = $(PROGS:%=%.32)
20PROGS64 = $(PROGS:%=%.64)
21
22OBJS = $(PROGS32:%=%.o) $(PROGS64:%=%.o)
23$(INTEL_BLD)OBJS += stack_i386.o stack_amd64.o
24$(SPARC_BLD)OBJS += stack_sparc.o stack_sparcv9.o
25
26ROOTOPTDIR = $(ROOT)/opt/os-tests/tests
27ROOTOPTSTACK = $(ROOTOPTDIR)/stackalign
28ROOTOPTPROGS = $(PROGS32:%=$(ROOTOPTSTACK)/%) $(PROGS64:%=$(ROOTOPTSTACK)/%)
29
30include $(SRC)/cmd/Makefile.cmd
31
32ASFLAGS += -P -D_ASM
33CFLAGS += -D_REENTRANT
34$(INTEL_BLD)LDFLAGS += -Wl,-zinitarray=get_stack_at_init
35$(SPARC_BLD)LDFLAGS += -Wl,-zinitarray=get_stack_at_init
36
37.KEEP_STATE:
38
39all: $(PROGS32) $(PROGS64)
40
41install: $(ROOTOPTPROGS)
42
43clean:
44	-$(RM) $(OBJS)
45
46$(ROOTOPTPROGS): $(PROGS32) $(PROGS64) $(ROOTOPTSTACK)
47
48$(ROOTOPTDIR):
49	$(INS.dir)
50
51$(ROOTOPTSTACK): $(ROOTOPTDIR)
52	$(INS.dir)
53
54$(ROOTOPTSTACK)/%: %
55	$(INS.file)
56
57%.64.o: %.c
58	$(COMPILE64.c) $< -o $@
59
60%.32.o: %.c
61	$(COMPILE.c) $< -o $@
62
63stack_$(MACH).o: stack_$(MACH).s
64	$(COMPILE.s) $< -o $@
65
66stack_$(MACH64).o: stack_$(MACH64).s
67	$(COMPILE64.s) $< -o $@
68
69%.64: %.64.o stack_$(MACH64).o
70	$(LINK64.c) -o $@ $^ $(LDLIBS64)
71	$(POST_PROCESS)
72
73%.32: %.32.o stack_$(MACH).o
74	$(LINK.c) -o $@ $^ $(LDLIBS)
75	$(POST_PROCESS)
76
77clobber: clean
78	$(RM) $(PROGS32) $(PROGS64)
79
80FRC:
81