# Compiler Options CXX = %{cc} LIB_OPT = %{lib_opt} APP_OPT = %{app_opt} LANG_FLAGS = %{lang_flags} WARN_FLAGS = %{warn_flags} SO_OBJ_FLAGS = %{shared_flags} LIB_LINKS_TO = %{link_to} APP_LINKS_TO = $(LIB_LINKS_TO) -lboost_regex -lboost_thread LIB_FLAGS = $(SO_OBJ_FLAGS) $(LANG_FLAGS) $(LIB_OPT) $(WARN_FLAGS) APP_FLAGS = $(LANG_FLAGS) $(APP_OPT) $(WARN_FLAGS) # Version Numbers VERSION = %{version} BRANCH = %{version_major}.%{version_minor} # Installation Settings DESTDIR = %{prefix} BINDIR = $(DESTDIR)/bin LIBDIR = $(DESTDIR)/%{libdir} HEADERDIR = $(DESTDIR)/%{includedir}/botan-$(BRANCH)/botan DOCDIR = $(DESTDIR)/%{docdir}/botan-$(VERSION) PKGCONF_DIR = $(LIBDIR)/pkgconfig CONFIG_SCRIPT = %{botan_config} PKGCONFIG = %{botan_pkgconfig} # Aliases for Common Programs AR = %{ar_command} COPY = cp COPY_R = cp -r CD = @cd ECHO = @echo INSTALL_CMD_EXEC = %{install_cmd_exec} INSTALL_CMD_DATA = %{install_cmd_data} LN = ln -fs MKDIR = @mkdir MKDIR_INSTALL = @umask 022; mkdir -p -m 755 RANLIB = %{ranlib_command} RM = @rm -f RM_R = @rm -rf # Targets APP = %{app_prefix}botan LIBRARIES = $(STATIC_LIB) LIBNAME = %{lib_prefix}libbotan STATIC_LIB = $(LIBNAME)-$(BRANCH).a LIBPATH = botan-$(BRANCH) all: $(APP) # File Lists INCLUDE_DIR = %{botan_include_dir} LIBOBJS = %{lib_objs} APPOBJS = %{app_objs} # Build Commands %{lib_build_cmds} %{app_build_cmds} # Link Commands %{shared_makefile} $(APP): $(LIBRARIES) $(APPOBJS) $(CXX) $(LDFLAGS) $(APPOBJS) -L. -l$(LIBPATH) $(APP_LINKS_TO) -o $(APP) $(STATIC_LIB): $(LIBOBJS) $(RM) $(STATIC_LIB) $(AR) $(STATIC_LIB) $(LIBOBJS) $(RANLIB) $(STATIC_LIB) %{python_makefile} # Fake Targets .PHONY = docs clean distclean install docs: %{build_doc_commands} clean: $(RM_R) %{build_dir}/lib/* %{build_dir}/tests/* $(RM) $(LIBRARIES) $(SYMLINK) $(SONAME) $(APP) distclean: clean $(RM_R) %{build_dir} $(RM) Makefile* $(CONFIG_SCRIPT) $(PKGCONFIG) $(RM) botan_all.cpp botan_all.h install: $(LIBRARIES) docs $(MKDIR_INSTALL) $(DOCDIR) $(COPY_R) %{doc_output_dir}/* $(DOCDIR) $(MKDIR_INSTALL) $(HEADERDIR) for i in $(INCLUDE_DIR)/*.h; do \ $(INSTALL_CMD_DATA) $$i $(HEADERDIR); \ done $(MKDIR_INSTALL) $(LIBDIR) $(INSTALL_CMD_DATA) $(STATIC_LIB) $(LIBDIR) ifdef $(SHARED_LIB) $(INSTALL_CMD_EXEC) $(SHARED_LIB) $(LIBDIR) $(CD) $(LIBDIR); $(LN) $(SHARED_LIB) $(SYMLINK) $(CD) $(LIBDIR); $(LN) $(SHARED_LIB) $(SONAME) endif $(MKDIR_INSTALL) $(BINDIR) $(INSTALL_CMD_EXEC) $(CONFIG_SCRIPT) $(BINDIR) $(MKDIR_INSTALL) $(PKGCONF_DIR) $(INSTALL_CMD_DATA) $(PKGCONFIG) $(PKGCONF_DIR)