#
# (C) Copyleft 2011
# Late Lee from http://www.latelee.org
#
# A simple Makefile for *ONE* project(c or/and cpp file) in *ONE* directory
#
# note:
# you can put head file(s) in 'include' directory, so it looks
# a little neat.
#
# usage: $ make
# $ make debug=y
###############################################################################
# cross compile...
CROSS_COMPILE =
CC = $(CROSS_COMPILE)gcc
CXX = $(CROSS_COMPILE)g++
AR = $(CROSS_COMPILE)ar
ARFLAGS = cr
RM = -rm -rf
MAKE = make
CFLAGS = -Wall
#debug = y
ifeq ($(debug), y)
CFLAGS += -g
else
CFLAGS += -O3 -s
endif
DEFS =
CFLAGS += $(DEFS)
LDFLAGS = $(LIBS)
OPENCV2_4_2_INCLUDE=/root/workspace/opencv/OpenCV-2.4.0/modules
OPENCV2_4_2_ROOT_PATH=/root/workspace/opencv/OpenCV-2.4.0
INCLUDE_OPENCV=\
-I$(INCLUDE_DIR)\
-I$(OPENCV2_4_2_INCLUDE)/contrib/include \
-I$(OPENCV2_4_2_INCLUDE)/legacy/include \
-I$(OPENCV2_4_2_INCLUDE)/calib3d/include \
-I$(OPENCV2_4_2_INCLUDE)/features2d/include \
-I$(OPENCV2_4_2_INCLUDE)/nonfree/include \
-I$(OPENCV2_4_2_INCLUDE)/photo/include \
-I$(OPENCV2_4_2_INCLUDE)/objdetect/include \
-I$(OPENCV2_4_2_INCLUDE)/video/include \
-I$(OPENCV2_4_2_INCLUDE)/ml/include \
-I$(OPENCV2_4_2_INCLUDE)/highgui/include \
-I$(OPENCV2_4_2_INCLUDE)/imgproc/include \
-I$(OPENCV2_4_2_INCLUDE)/flann/include \
-I$(OPENCV2_4_2_INCLUDE)/core/include\
-I$(OPENCV2_4_2_ROOT_PATH)/include/opencv\
-I$(OPENCV2_4_2_ROOT_PATH)/include/opencv2\
INCDIRS = ./
CFLAGS += -I$(INCDIRS)
CFLAGS += $(INCLUDE_OPENCV)
PLIB=~/workspace/opencv/opencvbuild/lib/
LOCAL_SHARED_LIBRARIES =\
$(PLIB)libopencv_calib3d.so\
$(PLIB)libopencv_core.so\
$(PLIB)libopencv_contrib.so \
$(PLIB)libopencv_features2d.so \
$(PLIB)libopencv_flann.so \
$(PLIB)libopencv_highgui.so\
$(PLIB)libopencv_imgproc.so \
$(PLIB)libopencv_legacy.so\
$(PLIB)libopencv_ml.so \
$(PLIB)libopencv_nonfree.so\
$(PLIB)libopencv_objdetect.so \
$(PLIB)libopencv_photo.so \
$(PLIB)libopencv_stitching.so \
$(PLIB)libopencv_video.so \
$(PLIB)libopencv_videostab.so
LDFLAGS += -L$(LOCAL_SHARED_LIBRARIES)
# source file(s), including c file(s) cpp file(s)
# you can also use $(wildcard *.c), etc.
SRC_C := $(wildcard *.c)
SRC_CPP := $(wildcard *.cpp)
# object file(s)
OBJ_C := $(patsubst %.c,%.o,$(SRC_C))
OBJ_CPP := $(patsubst %.cpp,%.o,$(SRC_CPP))
# executable file
target = a.out
###############################################################################
all: $(target)
$(target): $(OBJ_C) $(OBJ_CPP)
@echo "Generating executable file..." $(notdir $(target))
@$(CXX) $(CFLAGS) $^ -o $(target) $(LDFLAGS)
# make all .c or .cpp
%.o: %.c
@echo "Compling: " $(addsuffix .c, $(basename $(notdir $@)))
@$(CC) $(CFLAGS) -c $< -o $@
%.o: %.cpp
@echo "Compling: " $(addsuffix .cpp, $(basename $(notdir $@)))
@$(CXX) $(CFLAGS) -c $< -o $@
clean:
@echo "cleaning..."
@$(RM) $(target)
@$(RM) *.o *.back *~
.PHONY: all clean
比较笨的一种做法,希望高手再改进
opencv ubuntu makefile 3D项目二
最新推荐文章于 2023-10-30 17:25:36 发布