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
