Files

136 lines
5.0 KiB
Makefile
Raw Permalink Normal View History

2026-01-23 17:03:45 +08:00
#This file is part of SECONDO.
#Copyright (C) 2004, University in Hagen, Department of Computer Science,
#Database Systems for New Applications.
#SECONDO is free software; you can redistribute it and/or modify
#it under the terms of the GNU General Public License as published by
#the Free Software Foundation; either version 2 of the License, or
#(at your option) any later version.
#SECONDO is distributed in the hope that it will be useful,
#but WITHOUT ANY WARRANTY; without even the implied warranty of
#MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
#GNU General Public License for more details.
#You should have received a copy of the GNU General Public License
#along with SECONDO; if not, write to the Free Software
#Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
########################################################################
#
# generic makefile for an algebra module
#
########################################################################
#shared := yes
# inlcude global definitions
include ../../makefile.env
CURRENT_ALGEBRA := CompiledExpressionsAlgebra
#ALGEBRA_DEPENDENCIES := StandardAlgebra
#ALGEBRA_DEPENDENCIES += RelationAlgebra
CE_EXTERN_MAKE_DIR := ../Management
CE_EXTERN_MAKE_FILE := AlgebraManager.cpp
TMP_CURRENT_DIR := $(CURDIR)
# expand compile flags if necessary
#CCFLAGS +=
# create objects and algebra library. The values for the variables
# OBJECTS and LIBOBJ are computed automatically by makefile.env
.PHONY: all
all: check_dependencies $(OBJECTS) $(LIBOBJ)
.PHONY: prepare_kernel_header
prepare_kernel_header:
@echo && echo " *** Include or Remove CE-Algebra in Secondo *** " && echo;
ifneq (,$(findstring $(CURRENT_ALGEBRA),$(ALGEBRAS)))
if [ "`cat LinkCEAlgebraFunction.h | grep '^\/\/#define _COMPILED_EXPRESSIONS_ALGEBRA_AKTIV_' | wc -l`" -eq "1" ] ; then \
sed -i "s/^\/\/#define _COMPILED_EXPRESSIONS_ALGEBRA_AKTIV_/#define _COMPILED_EXPRESSIONS_ALGEBRA_AKTIV_/g" LinkCEAlgebraFunction.h ;\
fi
else
if [ "`cat LinkCEAlgebraFunction.h | grep '^#define _COMPILED_EXPRESSIONS_ALGEBRA_AKTIV_' | wc -l`" -eq "1" ] ; then \
sed -i "s/^#define _COMPILED_EXPRESSIONS_ALGEBRA_AKTIV_/\/\/#define _COMPILED_EXPRESSIONS_ALGEBRA_AKTIV_/g" LinkCEAlgebraFunction.h ;\
fi
endif
ifeq ($(shared),yes)
if [ "`cat LinkCEAlgebraFunction.h | grep '^#define _COMPILED_EXPRESSIONS_ALGEBRA_STATIC_' | wc -l`" -eq "1" ] ; then \
sed -i "s/^#define _COMPILED_EXPRESSIONS_ALGEBRA_STATIC_/\/\/#define _COMPILED_EXPRESSIONS_ALGEBRA_STATIC_/g" LinkCEAlgebraFunction.h ;\
fi
else
if [ "`cat LinkCEAlgebraFunction.h | grep '^\/\/#define _COMPILED_EXPRESSIONS_ALGEBRA_STATIC_' | wc -l`" -eq "1" ] ; then \
sed -i "s/^\/\/#define _COMPILED_EXPRESSIONS_ALGEBRA_STATIC_/#define _COMPILED_EXPRESSIONS_ALGEBRA_STATIC_/g" LinkCEAlgebraFunction.h ;\
fi
endif
for dir in $(CE_EXTERN_MAKE_DIR); do \
if [ -e $$dir/makefile ]; then \
cd $$dir; \
for file in $(CE_EXTERN_MAKE_FILE); do \
if [ -e $$dir/$$file ]; then \
touch $$dir/$$file; \
fi; \
done; \
if !($(MAKE)) then \
exit 1; \
fi; \
cd $$TMP_CURRENT_DIR; \
fi \
done
@echo && echo " *** Include or Remove CE-Algebra in Secondo finish ***" && echo;
.PHONY: prepare_ext_header
prepare_ext_header:
@echo && echo " *** Prepare CompiledExpressionAlgebra-Headerfile for use in Secondo *** " && echo;
ifneq (,$(findstring $(CURRENT_ALGEBRA),$(ALGEBRAS)))
if [ "`cat LinkCEAlgebraFunction.h | grep '^\/\/#define _COMPILED_EXPRESSIONS_ALGEBRA_AKTIV_' | wc -l`" -eq "1" ] ; then \
sed -i "s/^\/\/#define _COMPILED_EXPRESSIONS_ALGEBRA_AKTIV_/#define _COMPILED_EXPRESSIONS_ALGEBRA_AKTIV_/g" LinkCEAlgebraFunction.h ;\
fi
else
if [ "`cat LinkCEAlgebraFunction.h | grep '^#define _COMPILED_EXPRESSIONS_ALGEBRA_AKTIV_' | wc -l`" -eq "1" ] ; then \
sed -i "s/^#define _COMPILED_EXPRESSIONS_ALGEBRA_AKTIV_/\/\/#define _COMPILED_EXPRESSIONS_ALGEBRA_AKTIV_/g" LinkCEAlgebraFunction.h ;\
fi
endif
ifeq ($(shared),yes)
@echo && echo " *** Shared=YES *** |$(shared)| " && echo;
if [ "`cat LinkCEAlgebraFunction.h | grep '^#define _COMPILED_EXPRESSIONS_ALGEBRA_STATIC_' | wc -l`" -eq "1" ] ; then \
sed -i "s/^#define _COMPILED_EXPRESSIONS_ALGEBRA_STATIC_/\/\/#define _COMPILED_EXPRESSIONS_ALGEBRA_STATIC_/g" LinkCEAlgebraFunction.h ;\
fi
else
@echo && echo " *** Shared=NO *** |$(shared)| " && echo;
if [ "`cat LinkCEAlgebraFunction.h | grep '^\/\/#define _COMPILED_EXPRESSIONS_ALGEBRA_STATIC_' | wc -l`" -eq "1" ] ; then \
sed -i "s/^\/\/#define _COMPILED_EXPRESSIONS_ALGEBRA_STATIC_/#define _COMPILED_EXPRESSIONS_ALGEBRA_STATIC_/g" LinkCEAlgebraFunction.h ;\
fi
endif
@echo && echo " *** -Finish- Prepare CompiledExpressionAlgebra-Headerfile for use in Secondo -Finish- *** " && echo;
check_dependencies:
$(check-algebra-dependencies)
# include pre-computed dependencies
ifneq ($(MAKECMDGOALS),clean)
-include $(DEP_FILES)
endif
.PHONY: deps
deps: $(DEP_FILES)
# generic rule for creating a library
$(LIBOBJ): $(OBJECTS)
$(create-lib)
# generic rule for cleaning all generated files
.PHONY: clean
clean:
$(clean-algebra)
rm -f *.toc