blob: 9c4f189b2721ab5da0dc77fa0381c83d495c686c [file] [log] [blame]
# Licensed to the Apache Software Foundation (ASF) under one
# or more contributor license agreements. See the NOTICE file
# distributed with this work for additional information
# regarding copyright ownership. The ASF licenses this file
# to you under the Apache License, Version 2.0 (the
# "License"); you may not use this file except in compliance
# with the License. You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing,
# software distributed under the License is distributed on an
# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
# KIND, either express or implied. See the License for the
# specific language governing permissions and limitations
# under the License.
CPC_SRCDIR := cpc/src
CPC_INCDIR := cpc/include
CPC_BUILDDIR := build/cpc
CPC_TSTDIR := cpc/test
CPC_TSTBUILD := cpc/build
CPC_TEST_BIN := cpc_test
CPC_TARGET := cpc/$(CPC_TEST_BIN)
CPC_CSOURCES := $(shell find $(CPC_SRCDIR) -type f -name "*.c")
CPC_CPPSOURCES := $(shell find $(CPC_SRCDIR) -type f -name "*.cpp")
CPC_SOURCES := $(CPC_CSOURCES) $(CPC_CPPSOURCES)
CPC_OBJECTS := $(patsubst $(CPC_SRCDIR)/%,$(CPC_BUILDDIR)/%,$(CPC_CSOURCES:.c=.o) $(CPC_CPPSOURCES:.cpp=.o))
CPC_TSTSOURCES := $(shell find $(CPC_TSTDIR) -type f -name "*.cpp")
CPC_TSTOBJS := $(patsubst $(CPC_TSTDIR)/%,$(CPC_TSTBUILD)/%,$(CPC_TSTSOURCES:.cpp=.o))
CPC_INCLIST := $(COM_INCLIST) $(patsubst $(CPC_SRCDIR)/%,-I $(CPC_SRCDIR)/%,$(CPC_INCDIR))
CPC_INCLIST := $(COM_INCLIST) -I $(CPC_INCDIR)
CPC_BUILDLIST := $(patsubst src/%,$(CPC_BUILDDIR)/%,$(CPC_INCDIR))
cpc: $(CPC_OBJECTS)
$(CPC_BUILDDIR)/%.o: $(CPC_SRCDIR)/%.cpp
@mkdir -p $(CPC_BUILDDIR)
@echo "Compiling $<...";
@$(CC) $(CPPFLAGS) $(INC) $(CPC_INCLIST) -c -o $@ $<
$(CPC_BUILDDIR)/%.o: $(CPC_SRCDIR)/%.c
@mkdir -p $(CPC_BUILDDIR)
@echo "Compiling $<...";
@$(CC) $(CFLAGS) $(INC) $(CPC_INCLIST) -c -o $@ $<
$(CPC_TSTBUILD)/%.o: $(CPC_TSTDIR)/%.cpp
@mkdir -p $(CPC_TSTBUILD)
@echo "Compiling $<...";
@$(CC) $(CPPFLAGS) $(INC) $(CPC_INCLIST) -c -o $@ $<
.PHONY: cpc_test cpc_clean
cpc_exec: $(COM_TSTOBJS) $(CPC_OBJECTS) $(CPC_TSTOBJS)
@echo "Linking $(CPC_TARGET)..."
@$(CC) $^ -o $(CPC_TARGET) $(TSTLNKFLAGS) $(LIB)
cpc_test: $(LIBRARY) cpc_exec
@cd cpc; LD_LIBRARY_PATH=../$(TARGETDIR) ./$(CPC_TEST_BIN)
cpc_clean:
@echo "Cleaning cpc...";
@$(RM) -r $(CPC_BUILDDIR) $(CPC_TSTBUILD) $(CPC_TARGET)