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