xref: /aosp_15_r20/external/sg3_utils/testing/Makefile.freebsd (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 Assche# CC = gcc
11*44704f69SBart Van Assche# CC = clang
12*44704f69SBart Van Assche
13*44704f69SBart Van Assche# LD = gcc
14*44704f69SBart Van Assche# LD = clang
15*44704f69SBart Van Assche
16*44704f69SBart Van AsscheEXECS = sg_sense_test sg_chk_asc sg_tst_nvme tst_sg_lib
17*44704f69SBart Van Assche
18*44704f69SBart Van AsscheEXTRAS =
19*44704f69SBart Van Assche
20*44704f69SBart Van AsscheMAN_PGS =
21*44704f69SBart Van AsscheMAN_PREF = man8
22*44704f69SBart Van Assche
23*44704f69SBart Van AsscheOS_FLAGS = -DSG_LIB_FREEBSD -DHAVE_NVME
24*44704f69SBart Van AsscheEXTRA_FLAGS = $(OS_FLAGS)
25*44704f69SBart Van Assche
26*44704f69SBart Van Assche# For C++/clang testing
27*44704f69SBart Van Assche## CC = gcc
28*44704f69SBart Van Assche## CC = g++
29*44704f69SBart Van Assche## CC = clang
30*44704f69SBart Van Assche## CC = clang++
31*44704f69SBart Van Assche
32*44704f69SBart Van Assche# CFLAGS = -O2 -Wall -W $(EXTRA_FLAGS) -I ../include
33*44704f69SBart Van AsscheCFLAGS = -g -O2 -Wall -W $(EXTRA_FLAGS) -I ../include
34*44704f69SBart Van Assche# CFLAGS = -g -O2 -Wall -W -pedantic -std=c99 $(EXTRA_FLAGS) -I ../include
35*44704f69SBart Van Assche
36*44704f69SBart Van AsscheCFLAGS_PTHREADS = -D_REENTRANT
37*44704f69SBart Van Assche
38*44704f69SBart Van Assche# there is no rule to make the following in the parent directory,
39*44704f69SBart Van Assche# it is assumed they are already built.
40*44704f69SBart Van AsscheD_FILES = ../lib/sg_lib.o ../lib/sg_lib_data.o ../lib/sg_cmds_basic.o ../lib/sg_pt_common.o ../lib/sg_pt_freebsd.o
41*44704f69SBart Van Assche
42*44704f69SBart Van AsscheLDFLAGS = -lcam
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 Assche
49*44704f69SBart Van Asschedepend dep:
50*44704f69SBart Van Assche	for i in *.c; do $(CC) $(INCLUDES) $(CFLAGS) -M $$i; \
51*44704f69SBart Van Assche	done > .depend
52*44704f69SBart Van Assche
53*44704f69SBart Van Asscheclean:
54*44704f69SBart Van Assche	/bin/rm -f *.o $(EXECS) $(EXTRAS) core .depend
55*44704f69SBart Van Assche
56*44704f69SBart Van Asschesg_sense_test: sg_sense_test.o $(D_FILES)
57*44704f69SBart Van Assche	$(CC) -o $@ $(LDFLAGS) $@.o $(D_FILES)
58*44704f69SBart Van Assche
59*44704f69SBart Van Assche# building sg_chk_asc depends on a prior successful make in ../lib
60*44704f69SBart Van Asschesg_chk_asc: sg_chk_asc.o $(D_FILES)
61*44704f69SBart Van Assche	$(CC) -o $@ $(LDFLAGS) $@.o $(D_FILES)
62*44704f69SBart Van Assche
63*44704f69SBart Van Asschesg_tst_nvme: sg_tst_nvme.o $(D_FILES)
64*44704f69SBart Van Assche	$(CC) -o $@ $(LDFLAGS) $@.o $(D_FILES)
65*44704f69SBart Van Assche
66*44704f69SBart Van Asschetst_sg_lib: tst_sg_lib.o $(D_FILES)
67*44704f69SBart Van Assche	$(CC) -o $@ $(LDFLAGS) $@.o $(D_FILES)
68*44704f69SBart Van Assche
69*44704f69SBart Van Asscheinstall: $(EXECS)
70*44704f69SBart Van Assche	install -d $(INSTDIR)
71*44704f69SBart Van Assche	for name in $(EXECS) ; \
72*44704f69SBart Van Assche	 do install -s -o root -g wheel -m 755 $$name $(INSTDIR); \
73*44704f69SBart Van Assche	done
74*44704f69SBart Van Assche	install -d $(MANDIR)/$(MAN_PREF)
75*44704f69SBart Van Assche	for mp in $(MAN_PGS); \
76*44704f69SBart Van Assche	 do install -o root -g wheel -m 644 $$mp $(MANDIR)/$(MAN_PREF); \
77*44704f69SBart Van Assche	 gzip -9f $(MANDIR)/$(MAN_PREF)/$$mp; \
78*44704f69SBart Van Assche	done
79*44704f69SBart Van Assche
80*44704f69SBart Van Asscheuninstall:
81*44704f69SBart Van Assche	dists="$(EXECS)"; \
82*44704f69SBart Van Assche	for name in $$dists; do \
83*44704f69SBart Van Assche	 rm -f $(INSTDIR)/$$name; \
84*44704f69SBart Van Assche	done
85*44704f69SBart Van Assche	for mp in $(MAN_PGS); do \
86*44704f69SBart Van Assche	 rm -f $(MANDIR)/$(MAN_PREF)/$$mp.gz; \
87*44704f69SBart Van Assche	done
88*44704f69SBart Van Assche
89*44704f69SBart Van Assche# Linux uses GNU make and FreeBSD uses Berkely make. The following lines
90*44704f69SBart Van Assche# only work in Linux. Possible solutions in FreeBSD:
91*44704f69SBart Van Assche#    a) use 'gmake'; b) comment out the next 3 lines, starting with 'ifeq'
92*44704f69SBart Van Assche#        c) build with 'make -f Makefile.freebsd'
93*44704f69SBart Van Assche# In Linux one can install bmake (but that won't help here).
94*44704f69SBart Van Assche# ifeq (.depend,$(wildcard .depend))
95*44704f69SBart Van Assche# include .depend
96*44704f69SBart Van Assche# endif
97