15bb525f4SRobert Mustacchi#
25bb525f4SRobert Mustacchi# This file and its contents are supplied under the terms of the
35bb525f4SRobert Mustacchi# Common Development and Distribution License ("CDDL"), version 1.0.
45bb525f4SRobert Mustacchi# You may only use this file in accordance with the terms of version
55bb525f4SRobert Mustacchi# 1.0 of the CDDL.
65bb525f4SRobert Mustacchi#
75bb525f4SRobert Mustacchi# A full copy of the text of the CDDL should have accompanied this
85bb525f4SRobert Mustacchi# source.  A copy of the CDDL is also available via the Internet at
95bb525f4SRobert Mustacchi# http://www.illumos.org/license/CDDL.
105bb525f4SRobert Mustacchi#
115bb525f4SRobert Mustacchi
125bb525f4SRobert Mustacchi#
135bb525f4SRobert Mustacchi# Copyright 2019 Joyent, Inc.
145bb525f4SRobert Mustacchi#
155bb525f4SRobert Mustacchi
165bb525f4SRobert Mustacchi#
175bb525f4SRobert Mustacchi# This Makefile is installed onto the target system and is used as part
185bb525f4SRobert Mustacchi# of the running tests. It is not used as part of the build.
195bb525f4SRobert Mustacchi#
205bb525f4SRobert Mustacchi# This makefile could be simplified substantially. However, it does
215bb525f4SRobert Mustacchi# everything explicitly to try and work with a wide variety of different
225bb525f4SRobert Mustacchi# makes.
235bb525f4SRobert Mustacchi#
245bb525f4SRobert Mustacchi# The following values should be passed in by the invoker of the
255bb525f4SRobert Mustacchi# Makefile:
265bb525f4SRobert Mustacchi#
275bb525f4SRobert Mustacchi#	CC		C Compiler to use
285bb525f4SRobert Mustacchi#	CFLAGS32	32-bit CFLAGS
295bb525f4SRobert Mustacchi#	CFLAGS64	64-bit CFLAGS
305bb525f4SRobert Mustacchi#	CTFCONVERT	Path to ctfconvert
315bb525f4SRobert Mustacchi#	CTFMERGE	Path to ctfmerge
325bb525f4SRobert Mustacchi#	DEBUGFLAGS	The set of debug flags to use
335bb525f4SRobert Mustacchi#	BUILDDIR	Directory things should be built in
345bb525f4SRobert Mustacchi#	CHECK32		Program to check 32-bit output
355bb525f4SRobert Mustacchi#	CHECK64		Program to check 64-bit output
365bb525f4SRobert Mustacchi#
375bb525f4SRobert Mustacchi# The following values should be set before building this:
385bb525f4SRobert Mustacchi#
395bb525f4SRobert Mustacchi#	TEST		The name of the test program
405bb525f4SRobert Mustacchi#	OBJS_C_32	32-bit convert objects
415bb525f4SRobert Mustacchi#	OBJS_C_64	64-bit convert objects
425bb525f4SRobert Mustacchi#	OBJS_M_32	32-bit merge objects
435bb525f4SRobert Mustacchi#	OBJS_M_64	64-bit merge objects
445bb525f4SRobert Mustacchi#
455bb525f4SRobert Mustacchi
465bb525f4SRobert MustacchiCONV32 =	$(BUILDDIR)/$(TEST)-32c
475bb525f4SRobert MustacchiCONV64 =	$(BUILDDIR)/$(TEST)-64c
485bb525f4SRobert MustacchiMERGE32 =	$(BUILDDIR)/$(TEST)-32m
495bb525f4SRobert MustacchiMERGE64 =	$(BUILDDIR)/$(TEST)-64m
505bb525f4SRobert Mustacchi
515bb525f4SRobert MustacchiBINS =		$(CONV32) \
525bb525f4SRobert Mustacchi		$(CONV64) \
535bb525f4SRobert Mustacchi		$(MERGE32) \
545bb525f4SRobert Mustacchi		$(MERGE64)
555bb525f4SRobert Mustacchi
565bb525f4SRobert Mustacchibuild: $(BINS)
575bb525f4SRobert Mustacchi
585bb525f4SRobert Mustacchi$(BUILDDIR)/%.32.c.o: %.c
59*3cec9822SRobert Mustacchi	$(CC) $(CFLAGS32) $(TEST_CFLAGS32) $(DEBUGFLAGS) -o $@ -c $<
605bb525f4SRobert Mustacchi
615bb525f4SRobert Mustacchi$(BUILDDIR)/%.64.c.o: %.c
62*3cec9822SRobert Mustacchi	$(CC) $(CFLAGS64) $(TEST_CFLAGS64) $(DEBUGFLAGS) -o $@ -c $<
635bb525f4SRobert Mustacchi
645bb525f4SRobert Mustacchi$(BUILDDIR)/%.32.m.o: %.c
65*3cec9822SRobert Mustacchi	$(CC) $(CFLAGS32) $(TEST_CFLAGS32) $(DEBUGFLAGS) -o $@ -c $<
665bb525f4SRobert Mustacchi	$(CTFCONVERT) $@
675bb525f4SRobert Mustacchi
685bb525f4SRobert Mustacchi$(BUILDDIR)/%.64.m.o: %.c
69*3cec9822SRobert Mustacchi	$(CC) $(CFLAGS64) $(TEST_CFLAGS64) $(DEBUGFLAGS) -o $@ -c $<
705bb525f4SRobert Mustacchi	$(CTFCONVERT) $@
715bb525f4SRobert Mustacchi
725bb525f4SRobert Mustacchi$(CONV32): $(OBJS_C_32)
73*3cec9822SRobert Mustacchi	$(CC) $(CFLAGS32) $(TEST_CFLAGS32) $(DEBUGFLAGS) -o $@ $(OBJS_C_32)
745bb525f4SRobert Mustacchi	$(CTFCONVERT) $@
755bb525f4SRobert Mustacchi
765bb525f4SRobert Mustacchi$(CONV64): $(OBJS_C_64)
77*3cec9822SRobert Mustacchi	$(CC) $(CFLAGS64) $(TEST_CFLAGS64) $(DEBUGFLAGS) -o $@ $(OBJS_C_64)
785bb525f4SRobert Mustacchi	$(CTFCONVERT) $@
795bb525f4SRobert Mustacchi
805bb525f4SRobert Mustacchi$(MERGE32): $(OBJS_M_32)
81*3cec9822SRobert Mustacchi	$(CC) $(CFLAGS32) $(TEST_CFLAGS32) $(DEBUGFLAGS) -o $@ $(OBJS_M_32)
825bb525f4SRobert Mustacchi	$(CTFMERGE) -t -o $@ $(OBJS_M_32)
835bb525f4SRobert Mustacchi
845bb525f4SRobert Mustacchi$(MERGE64): $(OBJS_M_64)
85*3cec9822SRobert Mustacchi	$(CC) $(CFLAGS64) $(TEST_CFLAGS64) $(DEBUGFLAGS) -o $@ $(OBJS_M_64)
865bb525f4SRobert Mustacchi	$(CTFMERGE) -t -o $@ $(OBJS_M_64)
875bb525f4SRobert Mustacchi
885bb525f4SRobert Mustacchirun-test:
895bb525f4SRobert Mustacchi	$(CHECK32) $(CONV32)
905bb525f4SRobert Mustacchi	$(CHECK64) $(CONV64)
915bb525f4SRobert Mustacchi	$(CHECK32) $(MERGE32)
925bb525f4SRobert Mustacchi	$(CHECK64) $(MERGE64)
93