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 could be simplified substantially. However, it does 185bb525f4SRobert Mustacchi# everything explicitly to try and work with a wide variety of different 195bb525f4SRobert Mustacchi# makes. 205bb525f4SRobert Mustacchi# 215bb525f4SRobert Mustacchi# The following values should be passed in by the invoker of the 225bb525f4SRobert Mustacchi# Makefile: 235bb525f4SRobert Mustacchi# 245bb525f4SRobert Mustacchi# CC C Compiler to use 255bb525f4SRobert Mustacchi# CFLAGS32 32-bit CFLAGS 265bb525f4SRobert Mustacchi# CFLAGS64 64-bit CFLAGS 275bb525f4SRobert Mustacchi# CTFCONVERT Path to ctfconvert 285bb525f4SRobert Mustacchi# CTFMERGE Path to ctfmerge 295bb525f4SRobert Mustacchi# DEBUGFLAGS The set of debug flags to use 305bb525f4SRobert Mustacchi# BUILDDIR Directory things should be built in 315bb525f4SRobert Mustacchi# CHECK32 Program to check 32-bit output 325bb525f4SRobert Mustacchi# CHECK64 Program to check 64-bit output 335bb525f4SRobert Mustacchi# 345bb525f4SRobert Mustacchi 355bb525f4SRobert MustacchiOBJS_C_32 = $(BUILDDIR)/test-global.32.c.o \ 365bb525f4SRobert Mustacchi $(BUILDDIR)/test-scoped.32.c.o 375bb525f4SRobert Mustacchi 385bb525f4SRobert MustacchiOBJS_C_64 = $(BUILDDIR)/test-global.64.c.o \ 395bb525f4SRobert Mustacchi $(BUILDDIR)/test-scoped.64.c.o 405bb525f4SRobert Mustacchi 415bb525f4SRobert MustacchiOBJS_M_32 = $(BUILDDIR)/test-global.32.m.o \ 425bb525f4SRobert Mustacchi $(BUILDDIR)/test-scoped.32.m.o 435bb525f4SRobert Mustacchi 445bb525f4SRobert MustacchiOBJS_M_64 = $(BUILDDIR)/test-global.64.m.o \ 455bb525f4SRobert Mustacchi $(BUILDDIR)/test-scoped.64.m.o 465bb525f4SRobert Mustacchi 475bb525f4SRobert MustacchiBINS = $(BUILDDIR)/test-merge-reduction-32c.so.1 \ 485bb525f4SRobert Mustacchi $(BUILDDIR)/test-merge-reduction-32m.so.1 \ 495bb525f4SRobert Mustacchi $(BUILDDIR)/test-merge-reduction-64c.so.1 \ 505bb525f4SRobert Mustacchi $(BUILDDIR)/test-merge-reduction-64m.so.1 \ 515bb525f4SRobert Mustacchi 525bb525f4SRobert MustacchiCFLAGS = -fPIC 535bb525f4SRobert MustacchiLDFLAGS = -shared -Wl,-Mmapfile-vers -Wl,-ztext -Wl,-zdefs \ 54*3cec9822SRobert Mustacchi -Wl,-htest-merge-reduction.so.1 -lc 555bb525f4SRobert Mustacchi 565bb525f4SRobert Mustacchibuild: $(BINS) 575bb525f4SRobert Mustacchi 585bb525f4SRobert Mustacchi$(BUILDDIR)/%.32.c.o: %.c 595bb525f4SRobert Mustacchi $(CC) $(CFLAGS) $(CFLAGS32) $(DEBUGFLAGS) -o $@ -c $< 605bb525f4SRobert Mustacchi 615bb525f4SRobert Mustacchi$(BUILDDIR)/%.64.c.o: %.c 625bb525f4SRobert Mustacchi $(CC) $(CFLAGS) $(CFLAGS64) $(DEBUGFLAGS) -o $@ -c $< 635bb525f4SRobert Mustacchi 645bb525f4SRobert Mustacchi$(BUILDDIR)/%.32.m.o: %.c 655bb525f4SRobert Mustacchi $(CC) $(CFLAGS) $(CFLAGS32) $(DEBUGFLAGS) -o $@ -c $< 665bb525f4SRobert Mustacchi $(CTFCONVERT) $@ 675bb525f4SRobert Mustacchi 685bb525f4SRobert Mustacchi$(BUILDDIR)/%.64.m.o: %.c 695bb525f4SRobert Mustacchi $(CC) $(CFLAGS) $(CFLAGS64) $(DEBUGFLAGS) -o $@ -c $< 705bb525f4SRobert Mustacchi $(CTFCONVERT) $@ 715bb525f4SRobert Mustacchi 725bb525f4SRobert Mustacchi$(BUILDDIR)/test-merge-reduction-32c.so.1: $(OBJS_C_32) 735bb525f4SRobert Mustacchi $(CC) $(CFLAGS32) $(CFLAGS) $(LDFLAGS) $(DEBUGFLAGS) -o $@ $(OBJS_C_32) 745bb525f4SRobert Mustacchi $(CTFCONVERT) $@ 755bb525f4SRobert Mustacchi 765bb525f4SRobert Mustacchi$(BUILDDIR)/test-merge-reduction-64c.so.1: $(OBJS_C_64) 775bb525f4SRobert Mustacchi $(CC) $(CFLAGS64) $(CFLAGS) $(LDFLAGS) $(DEBUGFLAGS) -o $@ $(OBJS_C_64) 785bb525f4SRobert Mustacchi $(CTFCONVERT) $@ 795bb525f4SRobert Mustacchi 805bb525f4SRobert Mustacchi$(BUILDDIR)/test-merge-reduction-32m.so.1: $(OBJS_M_32) 815bb525f4SRobert Mustacchi $(CC) $(CFLAGS32) $(CFLAGS) $(LDFLAGS) $(DEBUGFLAGS) -o $@ $(OBJS_M_32) 825bb525f4SRobert Mustacchi $(CTFMERGE) -t -o $@ $(OBJS_M_32) 835bb525f4SRobert Mustacchi 845bb525f4SRobert Mustacchi$(BUILDDIR)/test-merge-reduction-64m.so.1: $(OBJS_M_64) 855bb525f4SRobert Mustacchi $(CC) $(CFLAGS64) $(CFLAGS) $(LDFLAGS) $(DEBUGFLAGS) -o $@ $(OBJS_M_64) 865bb525f4SRobert Mustacchi $(CTFMERGE) -t -o $@ $(OBJS_M_64) 875bb525f4SRobert Mustacchi 885bb525f4SRobert Mustacchirun-test: 895bb525f4SRobert Mustacchi $(CHECK32) $(BUILDDIR)/test-merge-reduction-32c.so.1 905bb525f4SRobert Mustacchi $(CHECK64) $(BUILDDIR)/test-merge-reduction-64c.so.1 915bb525f4SRobert Mustacchi $(CHECK32) $(BUILDDIR)/test-merge-reduction-32m.so.1 925bb525f4SRobert Mustacchi $(CHECK64) $(BUILDDIR)/test-merge-reduction-64m.so.1 93