+# ------------ Compiler / Linker Options -------------------------------
+
AXIS_USABLE_LIBS = UCLIBC GLIBC
include $(AXIS_TOP_DIR)/tools/build/Rules.axis
-CFLAGS = -pipe -g -Wall -Winline -O3 -finline-functions -finline-limit=600000 #-DHEXMODE
-
-CPPFLAGS =
+INCDIR = -I. -I../libtrbnet
+CPPFLAGS =
-INCDIR = -I../libtrbnet
+CFLAGS = -pipe -g -Wall -Winline -O3 -fPIC -finline-functions -finline-limit=600000
-LDFLAGS =
+LD = $(CC)
+LDFLAGS =
LIBDIR = -L../libtrbnet
LOADLIBES = -ltrbnet
-# ------------ Libaries ------------------------------------------------
-
-AR = ar-cris
-ARFLAGS = -srv
-
-# ------------ Install -------------------------------------------------
-
-BIN.OBJS =
-LIB.OBJS =
-INC.OBJS =
-
-BIN_DIR =
-LIB_DIR =
-INC_DIR =
-
-# ------------ Objects -------------------------------------------------
+# ------------ TARGETS -------------------------------------------------
TARGETS = pulser trb_i2c trbflash trbrichcmd
-pulser.OBJS = pulser.o
-
-trb_i2c.OBJS = trb_i2c.o
-
-trbflash.OBJS = trbflash.o
+LIB_TARGETS =
-trbrichcmd.OBJS = trbrichcmd.o
-
-# ------------ Library-Objects ----------------------------------------
-
-LIB_TARGETS =
+# ------------ Libaries ------------------------------------------------
-# ------------ Suffix Rules -------------------------------------------
+AR = ar-cris
+ARFLAGS = -srv
-.SUFFIXES:
+# ------------ Pattern Rules -------------------------------------------
-# ----- C Code ---------
+# C Code:
%.o: %.c
- $(CC) $< -c $(CPPFLAGS) $(CFLAGS) $(INCDIR) -o $@
+ $(CC) $< -c $(CFLAGS) $(CPPFLAGS) $(INCDIR) -o $@
-.SUFFIXES: .o .c
+# C++ Code:
+%.o: %.cpp
+ $(CXX) $< -c $(CXXFLAGS) $(CPPFLAGS) $(INCDIR) -o $@
-# ------------ Targets -------------------------------------------------
+%.o: %.cc
+ $(CXX) $< -c $(CXXFLAGS) $(CPPFLAGS) $(INCDIR) -o $@
-all: $(TARGETS) $(LIB_TARGETS)
+%.o: %.C
+ $(CXX) $< -c $(CXXFLAGS) $(CPPFLAGS) $(INCDIR) -o $@
-pulser: $(pulser.OBJS)
+# C/C++ Objects (set LD accordingly)
+%: %.o
@echo LINKING $@
- $(CC) $^ $(LDFLAGS) $(LIBDIR) $(LOADLIBES) -o $@
+ $(LD) $^ $(LDFLAGS) $(LIBDIR) $(LOADLIBES) -o $@
@echo DONE!
-trb_i2c: $(trb_i2c.OBJS)
- @echo LINKING $@
- $(CC) $^ $(LDFLAGS) $(LIBDIR) $(LOADLIBES) -o $@
+# Libaries
+%.a: $%
+ @echo CREATING library $@
+ $(AR) $(ARFLAGS) $@ $^
@echo DONE!
-trbflash: $(trbflash.OBJS)
- @echo LINKING $@
- $(CC) $^ $(LDFLAGS) $(LIBDIR) $(LOADLIBES) -o $@
+%.so: $%
+ @echo CREATING shared library $@
+ $(LD) -shared -O $^ -o $@
@echo DONE!
-trbrichcmd: $(trbrichcmd.OBJS)
- @echo LINKING $@
- $(CC) $^ $(LDFLAGS) $(LIBDIR) $(LOADLIBES) -o $@
- @echo DONE!
+# ------------ Targets -------------------------------------------------
-lib: $(LIB_TARGETS)
+.PHONY: all
+all: $(LIB_TARGETS) $(TARGETS)
+.PHONY: clean
+clean:
+ rm -f *.o core core.*
+ rcsclean
+
+.PHONY: distclean
distclean: clean
rm -f $(TARGETS) $(LIB_TARGETS)
rcsclean -u
-clean:
- rm -f *.o core core.*
- rcsclean
+.PHONY: depend
+depend:
+ $(CC) -MM $(CFLAGS) $(CPPFLAGS) $(INCDIR) *.c
# ------------ Dependencies --------------------------------------------
+pulser: pulser.o
pulser.o: pulser.c
+trb_i2c: trb_i2c.o
trb_i2c.o: trb_i2c.c
+trbflash: trbflash.o
trbflash.o: trbflash.c
+trbrichcmd: trbrichcmd.o
trbrichcmd.o: trbrichcmd.c
+