1*44704f69SBart Van AsscheSHELL = /bin/sh 2*44704f69SBart Van Assche 3*44704f69SBart Van AsschePREFIX=/usr/local 4*44704f69SBart Van AsscheINSTDIR=$(DESTDIR)/$(PREFIX)/bin 5*44704f69SBart Van AsscheMANDIR=$(DESTDIR)/$(PREFIX)/man 6*44704f69SBart Van Assche 7*44704f69SBart Van Assche# In Linux the default C compiler is GCC while in FreeBSD (since release 10 ?) 8*44704f69SBart Van Assche# the default C compiler is clang. Swap the comment marks (lines starting 9*44704f69SBart Van Assche# with '#') on the next 4 (non-blank) lines. 10*44704f69SBart Van AsscheCC = gcc 11*44704f69SBart Van Assche# CC = clang 12*44704f69SBart Van Assche 13*44704f69SBart Van AsscheLD = gcc 14*44704f69SBart Van Assche# LD = clang 15*44704f69SBart Van Assche 16*44704f69SBart Van Assche 17*44704f69SBart Van AsscheEXECS = sg_simple1 sg_simple2 sg_simple3 sg_simple4 sg_simple16 \ 18*44704f69SBart Van Assche scsi_inquiry sg_excl sg_simple5 sg__sat_identify \ 19*44704f69SBart Van Assche sg__sat_phy_event sg__sat_set_features sg_sat_chk_power \ 20*44704f69SBart Van Assche sg_sat_smart_rd_data 21*44704f69SBart Van Assche 22*44704f69SBart Van AsscheEXTRAS = sgq_dd 23*44704f69SBart Van Assche 24*44704f69SBart Van AsscheBSG_EXTRAS = 25*44704f69SBart Van Assche 26*44704f69SBart Van Assche 27*44704f69SBart Van AsscheMAN_PGS = 28*44704f69SBart Van AsscheMAN_PREF = man8 29*44704f69SBart Van Assche 30*44704f69SBart Van AsscheLARGE_FILE_FLAGS = -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 31*44704f69SBart Van Assche 32*44704f69SBart Van AsscheCPPFLAGS = -iquote ../include -D_REENTRANT $(LARGE_FILE_FLAGS) 33*44704f69SBart Van Assche# CPPFLAGS = -iquote ../include -D_REENTRANT $(LARGE_FILE_FLAGS) -DDEBUG 34*44704f69SBart Van Assche 35*44704f69SBart Van AsscheCFLAGS = -g -O2 -W -Wall 36*44704f69SBart Van Assche# CFLAGS = -g -O2 -Wall -DSG_KERNEL_INCLUDES 37*44704f69SBart Van Assche# CFLAGS = -g -O2 -Wall -pedantic 38*44704f69SBart Van Assche 39*44704f69SBart Van AsscheLDFLAGS = 40*44704f69SBart Van Assche 41*44704f69SBart Van AsscheLIBFILESOLD = ../lib/sg_lib.o ../lib/sg_lib_data.o ../lib/sg_io_linux.o 42*44704f69SBart Van AsscheLIBFILESNEW = ../lib/sg_lib.o ../lib/sg_lib_data.o ../lib/sg_pt_common.o ../lib/sg_pt_linux.o ../lib/sg_pt_linux_nvme.o 43*44704f69SBart Van Assche 44*44704f69SBart Van Asscheall: $(EXECS) 45*44704f69SBart Van Assche 46*44704f69SBart Van Asscheextras: $(EXTRAS) 47*44704f69SBart Van Assche 48*44704f69SBart Van Asschebsg: $(BSG_EXTRAS) 49*44704f69SBart Van Assche 50*44704f69SBart Van Assche 51*44704f69SBart Van Asschedepend dep: 52*44704f69SBart Van Assche for i in *.c; do $(CC) $(INCLUDES) $(CFLAGS) -M $$i; \ 53*44704f69SBart Van Assche done > .depend 54*44704f69SBart Van Assche 55*44704f69SBart Van Asscheclean: 56*44704f69SBart Van Assche /bin/rm -f *.o $(EXECS) $(EXTRAS) $(BSG_EXTRAS) core .depend 57*44704f69SBart Van Assche 58*44704f69SBart Van Asschesg_simple1: sg_simple1.o $(LIBFILESOLD) 59*44704f69SBart Van Assche $(LD) -o $@ $(LDFLAGS) $^ 60*44704f69SBart Van Assche 61*44704f69SBart Van Asschesg_simple2: sg_simple2.o 62*44704f69SBart Van Assche $(LD) -o $@ $(LDFLAGS) $^ 63*44704f69SBart Van Assche 64*44704f69SBart Van Asschesg_simple3: sg_simple3.o $(LIBFILESOLD) 65*44704f69SBart Van Assche $(LD) -o $@ $(LDFLAGS) $^ 66*44704f69SBart Van Assche 67*44704f69SBart Van Asschesg_simple4: sg_simple4.o $(LIBFILESOLD) 68*44704f69SBart Van Assche $(LD) -o $@ $(LDFLAGS) $^ 69*44704f69SBart Van Assche 70*44704f69SBart Van Asschesg_simple16: sg_simple16.o $(LIBFILESOLD) 71*44704f69SBart Van Assche $(LD) -o $@ $(LDFLAGS) $^ 72*44704f69SBart Van Assche 73*44704f69SBart Van Asschescsi_inquiry: scsi_inquiry.o 74*44704f69SBart Van Assche $(LD) -o $@ $(LDFLAGS) $^ 75*44704f69SBart Van Assche 76*44704f69SBart Van Asschesg_excl: sg_excl.o $(LIBFILESOLD) 77*44704f69SBart Van Assche $(LD) -o $@ $(LDFLAGS) $^ 78*44704f69SBart Van Assche 79*44704f69SBart Van Asschesg_simple5: sg_simple5.o $(LIBFILESNEW) 80*44704f69SBart Van Assche $(LD) -o $@ $(LDFLAGS) $^ 81*44704f69SBart Van Assche 82*44704f69SBart Van Asschesg__sat_identify: sg__sat_identify.o $(LIBFILESOLD) 83*44704f69SBart Van Assche $(LD) -o $@ $(LDFLAGS) $^ 84*44704f69SBart Van Assche 85*44704f69SBart Van Asschesg__sat_phy_event: sg__sat_phy_event.o $(LIBFILESOLD) 86*44704f69SBart Van Assche $(LD) -o $@ $(LDFLAGS) $^ 87*44704f69SBart Van Assche 88*44704f69SBart Van Asschesg__sat_set_features: sg__sat_set_features.o $(LIBFILESOLD) 89*44704f69SBart Van Assche $(LD) -o $@ $(LDFLAGS) $^ 90*44704f69SBart Van Assche 91*44704f69SBart Van Asschesg_sat_chk_power: sg_sat_chk_power.o $(LIBFILESOLD) 92*44704f69SBart Van Assche $(LD) -o $@ $(LDFLAGS) $^ 93*44704f69SBart Van Assche 94*44704f69SBart Van Asschesg_sat_smart_rd_data: sg_sat_smart_rd_data.o $(LIBFILESOLD) 95*44704f69SBart Van Assche $(LD) -o $@ $(LDFLAGS) $^ 96*44704f69SBart Van Assche 97*44704f69SBart Van Asschesgq_dd: sgq_dd.o $(LIBFILESOLD) 98*44704f69SBart Van Assche $(LD) -o $@ $(LDFLAGS) $^ 99*44704f69SBart Van Assche 100*44704f69SBart Van Asscheinstall: $(EXECS) 101*44704f69SBart Van Assche install -d $(INSTDIR) 102*44704f69SBart Van Assche for name in $^; \ 103*44704f69SBart Van Assche do install -s -o root -g root -m 755 $$name $(INSTDIR); \ 104*44704f69SBart Van Assche done 105*44704f69SBart Van Assche install -d $(MANDIR)/$(MAN_PREF) 106*44704f69SBart Van Assche for mp in $(MAN_PGS); \ 107*44704f69SBart Van Assche do install -o root -g root -m 644 $$mp $(MANDIR)/$(MAN_PREF); \ 108*44704f69SBart Van Assche gzip -9f $(MANDIR)/$(MAN_PREF)/$$mp; \ 109*44704f69SBart Van Assche done 110*44704f69SBart Van Assche 111*44704f69SBart Van Asscheuninstall: 112*44704f69SBart Van Assche dists="$(EXECS)"; \ 113*44704f69SBart Van Assche for name in $$dists; do \ 114*44704f69SBart Van Assche rm -f $(INSTDIR)/$$name; \ 115*44704f69SBart Van Assche done 116*44704f69SBart Van Assche for mp in $(MAN_PGS); do \ 117*44704f69SBart Van Assche rm -f $(MANDIR)/$(MAN_PREF)/$$mp.gz; \ 118*44704f69SBart Van Assche done 119*44704f69SBart Van Assche 120*44704f69SBart Van Assche# Linux uses GNU make and FreeBSD uses Berkely make. The following lines 121*44704f69SBart Van Assche# only work in Linux. Possible solutions in FreeBSD: 122*44704f69SBart Van Assche# a) use 'gmake'; b) comment out the next 3 lines, starting with 'ifeq' 123*44704f69SBart Van Assche# c) build with 'make -f Makefile.freebsd' 124*44704f69SBart Van Assche# In Linux one can install bmake (but that won't help here). 125*44704f69SBart Van Asscheifeq (.depend,$(wildcard .depend)) 126*44704f69SBart Van Asscheinclude .depend 127*44704f69SBart Van Asscheendif 128