1*81e874d2SHans Rosenfeld# 2*81e874d2SHans Rosenfeld# This file and its contents are supplied under the terms of the 3*81e874d2SHans Rosenfeld# Common Development and Distribution License ("CDDL"), version 1.0. 4*81e874d2SHans Rosenfeld# You may only use this file in accordance with the terms of version 5*81e874d2SHans Rosenfeld# 1.0 of the CDDL. 6*81e874d2SHans Rosenfeld# 7*81e874d2SHans Rosenfeld# A full copy of the text of the CDDL should have accompanied this 8*81e874d2SHans Rosenfeld# source. A copy of the CDDL is also available via the Internet at 9*81e874d2SHans Rosenfeld# http://www.illumos.org/license/CDDL. 10*81e874d2SHans Rosenfeld# 11*81e874d2SHans Rosenfeld 12*81e874d2SHans Rosenfeld# 13*81e874d2SHans Rosenfeld# Copyright 2025 Hans Rosenfeld 14*81e874d2SHans Rosenfeld# 15*81e874d2SHans Rosenfeld 16*81e874d2SHans RosenfeldSCRIPTS = printf-intmax 17*81e874d2SHans Rosenfeld 18*81e874d2SHans RosenfeldPROG = printf-intmax 19*81e874d2SHans Rosenfeld 20*81e874d2SHans RosenfeldPROG32 = $(PROG:%=%.32) 21*81e874d2SHans RosenfeldPROG64 = $(PROG:%=%.64) 22*81e874d2SHans RosenfeldPROGC89 = $(PROG:%=%.c89) 23*81e874d2SHans Rosenfeld 24*81e874d2SHans RosenfeldOBJS = printf-intmax.o 25*81e874d2SHans Rosenfeld 26*81e874d2SHans RosenfeldOBJS32 = $(OBJS:%.o=%.32.o) 27*81e874d2SHans RosenfeldOBJS64 = $(OBJS:%.o=%.64.o) 28*81e874d2SHans RosenfeldOBJSC89 = $(OBJS:%.o=%.c89.o) 29*81e874d2SHans Rosenfeld 30*81e874d2SHans RosenfeldROOTOPTDIR = $(ROOT)/opt/libc-tests/tests 31*81e874d2SHans RosenfeldROOTOPTPROGS = $(PROG32:%=$(ROOTOPTDIR)/%) \ 32*81e874d2SHans Rosenfeld $(PROG64:%=$(ROOTOPTDIR)/%) \ 33*81e874d2SHans Rosenfeld $(PROGC89:%=$(ROOTOPTDIR)/%) 34*81e874d2SHans RosenfeldROOTOPTSCRIPTS = $(SCRIPTS:%=$(ROOTOPTDIR)/%) 35*81e874d2SHans Rosenfeld 36*81e874d2SHans Rosenfeld$(ROOTOPTSCRIPTS) := FILEMODE = 0555 37*81e874d2SHans Rosenfeld 38*81e874d2SHans Rosenfeldinclude $(SRC)/cmd/Makefile.cmd 39*81e874d2SHans Rosenfeldinclude $(SRC)/test/Makefile.com 40*81e874d2SHans Rosenfeld 41*81e874d2SHans Rosenfeld# We decidedly want to build the C89 test using the C89 standard, but for the 42*81e874d2SHans Rosenfeld# other cases the only requirement is to have something newer than C89. We'll 43*81e874d2SHans Rosenfeld# use C99 for being next newer C standard. 44*81e874d2SHans Rosenfeld# 45*81e874d2SHans Rosenfeld# For the lack of CSTD_C{8,9}9 we'll use GNU variants of these C standards, 46*81e874d2SHans Rosenfeld# the difference shouldn't matter at all. 47*81e874d2SHans Rosenfeld$(PROGC89) := CSTD = $(CSTD_GNU89) 48*81e874d2SHans RosenfeldCSTD = $(CSTD_GNU99) 49*81e874d2SHans Rosenfeld 50*81e874d2SHans Rosenfeld.KEEP_STATE: 51*81e874d2SHans Rosenfeld 52*81e874d2SHans Rosenfeldall: $(PROG32) $(PROG64) $(PROGC89) 53*81e874d2SHans Rosenfeld 54*81e874d2SHans Rosenfeldinstall: $(ROOTOPTPROGS) $(ROOTOPTSCRIPTS) $(ROOTOPTDIR) 55*81e874d2SHans Rosenfeld 56*81e874d2SHans Rosenfeld$(ROOTOPTDIR): 57*81e874d2SHans Rosenfeld $(INS.dir) 58*81e874d2SHans Rosenfeld 59*81e874d2SHans Rosenfeld$(ROOTOPTDIR)/%: % 60*81e874d2SHans Rosenfeld $(INS.file) 61*81e874d2SHans Rosenfeld 62*81e874d2SHans Rosenfeld$(ROOTOPTDIR)/%: %.ksh 63*81e874d2SHans Rosenfeld $(INS.rename) 64*81e874d2SHans Rosenfeld 65*81e874d2SHans Rosenfeld%.c89.o: %.c 66*81e874d2SHans Rosenfeld $(COMPILE.c) -o $@ $< 67*81e874d2SHans Rosenfeld $(POST_PROCESS_O) 68*81e874d2SHans Rosenfeld 69*81e874d2SHans Rosenfeld%.c89: $(OBJSC89) 70*81e874d2SHans Rosenfeld $(LINK.c) -o $@ $(OBJSC89) $(LDLIBS) 71*81e874d2SHans Rosenfeld $(POST_PROCESS) 72*81e874d2SHans Rosenfeld 73*81e874d2SHans Rosenfeld%.32.o: %.c 74*81e874d2SHans Rosenfeld $(COMPILE.c) -o $@ $< 75*81e874d2SHans Rosenfeld $(POST_PROCESS_O) 76*81e874d2SHans Rosenfeld 77*81e874d2SHans Rosenfeld%.32: $(OBJS32) 78*81e874d2SHans Rosenfeld $(LINK.c) -o $@ $(OBJS32) $(LDLIBS) 79*81e874d2SHans Rosenfeld $(POST_PROCESS) 80*81e874d2SHans Rosenfeld 81*81e874d2SHans Rosenfeld%.64.o: %.c 82*81e874d2SHans Rosenfeld $(COMPILE64.c) -o $@ $< 83*81e874d2SHans Rosenfeld $(POST_PROCESS_O) 84*81e874d2SHans Rosenfeld 85*81e874d2SHans Rosenfeld%.64: $(OBJS64) 86*81e874d2SHans Rosenfeld $(LINK64.c) -o $@ $(OBJS64) $(LDLIBS64) 87*81e874d2SHans Rosenfeld $(POST_PROCESS) 88*81e874d2SHans Rosenfeld 89*81e874d2SHans Rosenfeldclean: 90*81e874d2SHans Rosenfeld -$(RM) $(OBJS32) $(OBJS64) $(OBJSC89) 91*81e874d2SHans Rosenfeld 92*81e874d2SHans Rosenfeldclobber: clean 93*81e874d2SHans Rosenfeld -$(RM) $(PROG32) $(PROG64) $(PROGC89) 94*81e874d2SHans Rosenfeld 95*81e874d2SHans Rosenfeld 96