https://doi.org/10.5201/ipol.2019.272
Raw File
Tip revision: c92e3756afa20b81ced28d0142f3e8f5e8e4f9ba authored by Software Heritage on 01 January 2017, 00:00:00 UTC
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 *~

back to top