
## CC=arm-linux-gnueabi-gcc 
# for C++/clang testing
## CC = g++ -std=c++11
## CC = g++
## CC = clang

## STRIP=arm-linux-gnueabi-strip

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


PROGS     = gpio_sysfs gpio_ioctl setbits readbits is_foxlx \
	    is_foxg20 w1_bbtest hex2tty i2c_bbtest i2c_devtest \
	    mem2io g20tc_freq g20gpio_status g20gpio_set \
	    is_ariag25 is_arm g25tc_freq g25pmc

SCRIPTS =


OBJS      = gpio_sysfs.o gpio_ioctl.o setbits.o readbits.o is_foxlx.o \
	    is_foxg20.o w1_bbtest.o hex2tty.o i2c_bbtest.o i2c_devtest.o \
	    mem2io.o g20tc_freq.o g20gpio_status.o g20gpio_set.o \
	    is_ariag25.o is_arm.o g25tc_freq.o g25pmc.o

SUBDIRS =


# -std=<s> can be c99, c11, gnu11, etc. Default is gnu89 (gnu90 is the same)
CFLAGS = -g -O2 -Wall -W
# CFLAGS = -g -O2 -Wall -W -std=c11
# CFLAGS = -g -O2 -Wall -W -D_REENTRANT
#LDFLAGS = -L/usr/arm-linux-gnueabi/lib,-rpath-link=/usr/arm-linux-gnueabi/lib


all: $(PROGS) subdirs

# librt depends on libpthread but can't find it in Ubuntu 10.10
gpio_sysfs: gpio_sysfs.o
	$(CC) $(LDFLAGS) $^ -lpthread -lrt $(LDLIBS) -o $@
#	$(CC) $(LDFLAGS) $^ -lrt $(LDLIBS) -o $@ 
#	$(STRIP) $@

gpio_ioctl: gpio_ioctl.o
	$(CC) $(LDFLAGS) $^ $(LDLIBS) -o $@

setbits: setbits.o
	$(CC) $(LDFLAGS) $^ $(LDLIBS) -o $@

readbits: readbits.o
	$(CC) $(LDFLAGS) $^ $(LDLIBS) -o $@

is_foxlx: is_foxlx.o
	$(CC) $(LDFLAGS) $^ $(LDLIBS) -o $@

is_foxg20: is_foxg20.o
	$(CC) $(LDFLAGS) $^ $(LDLIBS) -o $@

w1_bbtest: w1_bbtest.o
	$(CC) $(LDFLAGS) $^ $(LDLIBS) -o $@

hex2tty: hex2tty.o
	$(CC) $(LDFLAGS) $^ $(LDLIBS) -o $@

i2c_bbtest: i2c_bbtest.o
	$(CC) $(LDFLAGS) $^ $(LDLIBS) -o $@

i2c_devtest: i2c_devtest.o
	$(CC) $(LDFLAGS) $^ $(LDLIBS) -o $@

devmem2: devmem2.o
	$(CC) $(LDFLAGS) $^ $(LDLIBS) -o $@

mem2io: mem2io.o
	$(CC) $(LDFLAGS) $^ $(LDLIBS) -o $@

g20tc_freq: g20tc_freq.o
	$(CC) $(LDFLAGS) $^ $(LDLIBS) -o $@

g20gpio_status: g20gpio_status.o
	$(CC) $(LDFLAGS) $^ $(LDLIBS) -o $@

g20gpio_set: g20gpio_set.o
	$(CC) $(LDFLAGS) $^ $(LDLIBS) -o $@

is_arm: is_arm.o
	$(CC) $(LDFLAGS) $^ $(LDLIBS) -o $@

is_ariag25: is_ariag25.o
	$(CC) $(LDFLAGS) $^ $(LDLIBS) -o $@

g25tc_freq: g25tc_freq.o
	$(CC) $(LDFLAGS) $^ $(LDLIBS) -o $@

g25pmc: g25pmc.o
	$(CC) $(LDFLAGS) $^ $(LDLIBS) -o $@

subdirs:
	for i in $(SUBDIRS); do $(MAKE) -C $$i ; done


install: $(PROGS)
	$(INSTALL) -d $(INSTDIR)
	$(INSTALL) -p -m 0777 $(PROGS) $(INSTDIR)
	ln $(INSTDIR)/g20gpio_status $(INSTDIR)/g25gpio_status
	ln $(INSTDIR)/g20gpio_set $(INSTDIR)/g25gpio_set
	if [ $(SCRIPTS) ] ; then $(INSTALL) -p -m 0777 $(SCRIPTS) $(INSTDIR) ; fi
	for i in $(SUBDIRS); do $(MAKE) -C $$i install ; done

clean:
	rm -f $(PROGS) *.o core
	rm -f g25gpio_status g25gpio_set
	for i in $(SUBDIRS); do $(MAKE) -C $$i clean ; done
