xref: /aosp_15_r20/external/sg3_utils/examples/Makefile (revision 44704f698541f6367e81f991ef8bb54ccbf3fc18)
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