diff options
Diffstat (limited to 'testing/Makefile.freebsd')
-rw-r--r-- | testing/Makefile.freebsd | 96 |
1 files changed, 96 insertions, 0 deletions
diff --git a/testing/Makefile.freebsd b/testing/Makefile.freebsd new file mode 100644 index 00000000..5b11cd09 --- /dev/null +++ b/testing/Makefile.freebsd @@ -0,0 +1,96 @@ +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_sense_test sg_chk_asc sg_tst_nvme tst_sg_lib + +EXTRAS = + +MAN_PGS = +MAN_PREF = man8 + +OS_FLAGS = -DSG_LIB_FREEBSD -DHAVE_NVME +EXTRA_FLAGS = $(OS_FLAGS) + +# For C++/clang testing +## CC = gcc +## CC = g++ +## CC = clang +## CC = clang++ + +# CFLAGS = -O2 -Wall -W $(EXTRA_FLAGS) -I ../include +CFLAGS = -g -O2 -Wall -W $(EXTRA_FLAGS) -I ../include +# CFLAGS = -g -O2 -Wall -W -pedantic -std=c99 $(EXTRA_FLAGS) -I ../include + +CFLAGS_PTHREADS = -D_REENTRANT + +# there is no rule to make the following in the parent directory, +# it is assumed they are already built. +D_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 + +LDFLAGS = -lcam + +all: $(EXECS) + +extras: $(EXTRAS) + + +depend dep: + for i in *.c; do $(CC) $(INCLUDES) $(CFLAGS) -M $$i; \ + done > .depend + +clean: + /bin/rm -f *.o $(EXECS) $(EXTRAS) core .depend + +sg_sense_test: sg_sense_test.o $(D_FILES) + $(CC) -o $@ $(LDFLAGS) $@.o $(D_FILES) + +# building sg_chk_asc depends on a prior successful make in ../lib +sg_chk_asc: sg_chk_asc.o $(D_FILES) + $(CC) -o $@ $(LDFLAGS) $@.o $(D_FILES) + +sg_tst_nvme: sg_tst_nvme.o $(D_FILES) + $(CC) -o $@ $(LDFLAGS) $@.o $(D_FILES) + +tst_sg_lib: tst_sg_lib.o $(D_FILES) + $(CC) -o $@ $(LDFLAGS) $@.o $(D_FILES) + +install: $(EXECS) + install -d $(INSTDIR) + for name in $(EXECS) ; \ + do install -s -o root -g wheel -m 755 $$name $(INSTDIR); \ + done + install -d $(MANDIR)/$(MAN_PREF) + for mp in $(MAN_PGS); \ + do install -o root -g wheel -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 |