SHELL = /bin/sh

PREFIX=/usr/local
INSTDIR=$(DESTDIR)/$(PREFIX)/bin
MANDIR=$(DESTDIR)/$(PREFIX)/man

CC = gcc
LD = gcc

EXECS = hxascdmp
# EXECS = hxascdmp sg_chk_asc

MAN_PGS = 
MAN_PREF = man8

CFLAGS = -g -O2 -W 
# CFLAGS = -g -O2 -W -pedantic -std=c99

LDFLAGS =

all: $(EXECS)

depend dep:
	for i in *.c; do $(CC) $(INCLUDES) $(CFLAGS) -M $$i; \
	done > .depend

clean:
	/bin/rm -f *.o $(EXECS) core .depend

hxascdmp: hxascdmp.o
	$(LD) -o $@ $(LDFLAGS) $@.o

sg_chk_asc: sg_chk_asc.o ../sg_lib.o ../sg_lib_data.o
	$(LD) -o $@ $(LDFLAGS) $@.o ../sg_lib.o


install: $(EXECS)
	install -d $(INSTDIR)
	for name in $(EXECS); \
	 do install -s -m 755 $$name $(INSTDIR); \
	done
	install -d $(MANDIR)/$(MAN_PREF)
	for mp in $(MAN_PGS); \
	 do install -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

