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 2019 Joyent, Inc. 14# 15 16# 17# This Makefile is installed onto the target system and is used as part 18# of the running tests. It is not used as part of the build. 19# 20# This makefile could be simplified substantially. However, it does 21# everything explicitly to try and work with a wide variety of different 22# makes. 23# 24# The following values should be passed in by the invoker of the 25# Makefile: 26# 27# CC C Compiler to use 28# CFLAGS32 32-bit CFLAGS 29# CFLAGS64 64-bit CFLAGS 30# CTFCONVERT Path to ctfconvert 31# CTFMERGE Path to ctfmerge 32# DEBUGFLAGS The set of debug flags to use 33# BUILDDIR Directory things should be built in 34# CHECK32 Program to check 32-bit output 35# CHECK64 Program to check 64-bit output 36# 37# The following values should be set before building this: 38# 39# TEST The name of the test program 40# OBJS_C_32 32-bit convert objects 41# OBJS_C_64 64-bit convert objects 42# OBJS_M_32 32-bit merge objects 43# OBJS_M_64 64-bit merge objects 44# 45 46CONV32 = $(BUILDDIR)/$(TEST)-32c 47CONV64 = $(BUILDDIR)/$(TEST)-64c 48MERGE32 = $(BUILDDIR)/$(TEST)-32m 49MERGE64 = $(BUILDDIR)/$(TEST)-64m 50 51BINS = $(CONV32) \ 52 $(CONV64) \ 53 $(MERGE32) \ 54 $(MERGE64) 55 56build: $(BINS) 57 58$(BUILDDIR)/%.32.c.o: %.c 59 $(CC) $(CFLAGS32) $(TEST_CFLAGS32) $(DEBUGFLAGS) -o $@ -c $< 60 61$(BUILDDIR)/%.64.c.o: %.c 62 $(CC) $(CFLAGS64) $(TEST_CFLAGS64) $(DEBUGFLAGS) -o $@ -c $< 63 64$(BUILDDIR)/%.32.m.o: %.c 65 $(CC) $(CFLAGS32) $(TEST_CFLAGS32) $(DEBUGFLAGS) -o $@ -c $< 66 $(CTFCONVERT) $@ 67 68$(BUILDDIR)/%.64.m.o: %.c 69 $(CC) $(CFLAGS64) $(TEST_CFLAGS64) $(DEBUGFLAGS) -o $@ -c $< 70 $(CTFCONVERT) $@ 71 72$(CONV32): $(OBJS_C_32) 73 $(CC) $(CFLAGS32) $(TEST_CFLAGS32) $(DEBUGFLAGS) -o $@ $(OBJS_C_32) 74 $(CTFCONVERT) $@ 75 76$(CONV64): $(OBJS_C_64) 77 $(CC) $(CFLAGS64) $(TEST_CFLAGS64) $(DEBUGFLAGS) -o $@ $(OBJS_C_64) 78 $(CTFCONVERT) $@ 79 80$(MERGE32): $(OBJS_M_32) 81 $(CC) $(CFLAGS32) $(TEST_CFLAGS32) $(DEBUGFLAGS) -o $@ $(OBJS_M_32) 82 $(CTFMERGE) -t -o $@ $(OBJS_M_32) 83 84$(MERGE64): $(OBJS_M_64) 85 $(CC) $(CFLAGS64) $(TEST_CFLAGS64) $(DEBUGFLAGS) -o $@ $(OBJS_M_64) 86 $(CTFMERGE) -t -o $@ $(OBJS_M_64) 87 88run-test: 89 $(CHECK32) $(CONV32) 90 $(CHECK64) $(CONV64) 91 $(CHECK32) $(MERGE32) 92 $(CHECK64) $(MERGE64) 93