https://doi.org/10.5201/ipol.2019.272
Tip revision: c92e3756afa20b81ced28d0142f3e8f5e8e4f9ba authored by Software Heritage on 01 January 2017, 00:00:00 UTC
ipol: Deposit 663 in collection ipol
ipol: Deposit 663 in collection ipol
Tip revision: c92e375
makefile
# Copyright 2019 Jose-Luis Lisani <joseluis.lisani@uib.es>
#
# Copying and distribution of this file, with or without
# modification, are permitted in any medium without royalty provided
# the copyright notice and this notice are preserved. This file is
# offered as-is, without any warranty.
# C source code
CSRC = library/io_png/io_png.c library/randmt.c
# C++ source code
CXXSRC = library/io_RGB.cpp library/parser.cpp library/tools_lib.cpp library/lib_features.cpp library/lib_facedet.cpp
# all source code
SRC = $(CSRC) $(CXXSRC)
# C objects
COBJ = $(CSRC:.c=.o)
# C++ objects
CXXOBJ = $(CXXSRC:.cpp=.o)
# all objects
OBJ = $(COBJ) $(CXXOBJ)
# binary target
BIN = facedet
default : $(BIN)
# use DEBUG mode with `make DEBUG=1`
ifdef DEBUG
# C optimization flags
COPT = -g
else
# C optimization flags
COPT = -O3 -ftree-vectorize -funroll-loops
endif
# C++ optimization flags
CXXOPT = $(COPT)
# C compilation flags
CFLAGS = $(COPT) -ansi
# C++ compilation flags
CXXFLAGS = $(CXXOPT) -ansi
# link flags
LDFLAGS = -lpng -lm
# use openMP with `make OMP=1`
ifdef OMP
CFLAGS += -fopenmp
CXXFLAGS += -fopenmp
LDFLAGS += -lgomp
else
CFLAGS += -Wno-unknown-pragmas
CXXFLAGS += -Wno-unknown-pragmas
endif
# partial compilation of C source code
%.o: %.c %.h
$(CC) -c -o $@ $< $(CFLAGS)
# partial compilation of C++ source code
%.o: %.cpp %.h
$(CXX) -c -o $@ $< $(CXXFLAGS)
# link all the object code
$(BIN): % : %.o $(OBJ)
$(CXX) -o $@ $^ $(LDFLAGS)
# housekeeping
.PHONY : clean distclean
clean :
$(RM) $(OBJ)
distclean : clean
$(RM) $(BIN) *.o *~