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 += -D_ASM 33ASFLAGS64 += -D_ASM 34CFLAGS += -D_REENTRANT 35$(INTEL_BLD)LDFLAGS += -Wl,-zinitarray=get_stack_at_init 36$(SPARC_BLD)LDFLAGS += -Wl,-zinitarray=get_stack_at_init 37 38.KEEP_STATE: 39 40all: $(PROGS32) $(PROGS64) 41 42install: $(ROOTOPTPROGS) 43 44clean: 45 -$(RM) $(OBJS) 46 47$(ROOTOPTPROGS): $(PROGS32) $(PROGS64) $(ROOTOPTSTACK) 48 49$(ROOTOPTDIR): 50 $(INS.dir) 51 52$(ROOTOPTSTACK): $(ROOTOPTDIR) 53 $(INS.dir) 54 55$(ROOTOPTSTACK)/%: % 56 $(INS.file) 57 58%.64.o: %.c 59 $(COMPILE64.c) $< -o $@ 60 61%.32.o: %.c 62 $(COMPILE.c) $< -o $@ 63 64stack_$(MACH).o: stack_$(MACH).S 65 $(COMPILE.s) $< -o $@ 66 67stack_$(MACH64).o: stack_$(MACH64).S 68 $(COMPILE64.s) $< -o $@ 69 70%.64: %.64.o stack_$(MACH64).o 71 $(LINK64.c) -o $@ $^ $(LDLIBS64) 72 $(POST_PROCESS) 73 74%.32: %.32.o stack_$(MACH).o 75 $(LINK.c) -o $@ $^ $(LDLIBS) 76 $(POST_PROCESS) 77 78clobber: clean 79 $(RM) $(PROGS32) $(PROGS64) 80 81FRC: 82