summaryrefslogtreecommitdiff
path: root/ext/dsent/Makefile
diff options
context:
space:
mode:
Diffstat (limited to 'ext/dsent/Makefile')
-rw-r--r--ext/dsent/Makefile55
1 files changed, 55 insertions, 0 deletions
diff --git a/ext/dsent/Makefile b/ext/dsent/Makefile
new file mode 100644
index 000000000..124188353
--- /dev/null
+++ b/ext/dsent/Makefile
@@ -0,0 +1,55 @@
+
+# Define the directories that will be compiled
+DIRS_TO_COMPILE := util tech io \
+ model model/timing_graph \
+ model/std_cells \
+ model/electrical \
+ model/electrical/router \
+ model/optical \
+ model/optical_graph \
+ model/network \
+ model/network/ATAC
+
+DIRS = $(patsubst %,$(CURDIR)/%,$(DIRS_TO_COMPILE))
+
+SRCS = $(foreach dir, $(DIRS), $(wildcard $(dir)/*.cc))
+
+OBJS = $(SRCS:%.cc=%.o)
+
+DEF_FLAGS =
+INCLUDE_FLAGS = -I$(CURDIR)
+OPT_FLAGS = -O2 -g
+WARN_FLAGS = -pedantic -Wall -W #-Wextra -Werror -Wno-write-strings
+CXXFLAGS = $(OPT_FLAGS) $(WARN_FLAGS) $(INCLUDE_FLAGS) $(DEF_FLAGS)
+
+LD_LIBS += -lutil
+LD_FLAGS += -Llibutil
+
+# Other libraries used
+LIB_UTIL = libutil/libutil.a
+
+#TARGET = $(CURDIR)/libdsent.a
+TARGET = $(CURDIR)/dsent
+
+all: $(TARGET)
+
+#$(TARGET): $(OBJS)
+# ar rcs $@ $^
+$(TARGET): main.o DSENT.o $(LIB_UTIL) $(OBJS)
+ $(CXX) $(CXXFLAGS) $(LD_FLAGS) $(OBJS) main.o DSENT.o -o $(TARGET) $(LD_LIBS)
+
+# For general c++ compilation
+%.o: %.cc
+ $(CXX) $(CXXFLAGS) -c $< -o $@
+
+$(LIB_UTIL):
+ $(MAKE) -C $(CURDIR)/libutil
+
+%/created:
+ mkdir -p $(dir $@)
+ touch $@
+
+.phony: clean
+clean:
+ $(RM) -rf main.o DSENT.o $(OBJS) $(TARGET)
+ $(MAKE) -C $(CURDIR)/libutil clean