### Compiler Options CXX = %{cc} LIB_OPT = %{lib_opt} CHECK_OPT = %{check_opt} LANG_FLAGS = %{lang_flags} WARN_FLAGS = %{warn_flags} SO_OBJ_FLAGS = %{shared_flags} LIB_LINK_CMD = %{so_link} LINK_TO = %{link_to} LIB_FLAGS = $(LIB_OPT) $(LANG_FLAGS) $(WARN_FLAGS) $(SO_OBJ_FLAGS) CHECK_FLAGS = $(CHECK_OPT) $(LANG_FLAGS) $(WARN_FLAGS) ### Version Numbers VERSION = %{version} ### Installation Settings DESTDIR = %{prefix} ### Aliases for Common Programs AR = %{ar_command} COPY = copy CD = @cd ECHO = @echo INSTALL = %{install_cmd_exec} INSTALL_CMD = %{install_cmd_exec} MKDIR = @md MKDIR_INSTALL = @md RM = @del /Q RM_R = $(RM) /S RMDIR = @rmdir ### File Lists CHECK = check HEADERS = %{include_files} LIBOBJS = %{lib_objs} CHECKOBJS = %{check_objs} LIBNAME = botan LIBRARIES = $(BOTAN_LIB) # This will be either a static lib or the DLL import lib BOTAN_LIB = $(LIBNAME).%{static_suffix} all: $(LIBRARIES) ### Build Commands %{lib_build_cmds} %{check_build_cmds} ### Link Commands $(CHECK): $(LIBRARIES) $(CHECKOBJS) $(CXX) /Fe$@ $(CHECKOBJS) $(BOTAN_LIB) $(LINK_TO) $(BOTAN_LIB): $(LIBOBJS) !If "$(SO_OBJ_FLAGS)" == "" $(AR) /OUT:$(BOTAN_LIB) $(LIBOBJS) !Else $(LIB_LINK_CMD) /Fe$(LIBNAME) $(LIBOBJS) $(LINK_TO) !Endif ### Fake Targets docs: %{build_doc_commands} clean: $(RM) %{build_dir}\lib\* %{build_dir}\checks\* $(RM) *.manifest *.exp *.dll $(RM) $(LIBRARIES) $(CHECK) distclean: clean $(RM_R) %{build_dir} $(RMDIR) %{build_dir}\include\botan\internal $(RMDIR) %{build_dir}\include\botan $(RMDIR) %{build_dir}\include $(RMDIR) %{build_dir}\lib %{build_dir}\checks $(RMDIR) %{build_dir} $(RM) Makefile $(LIBNAME).* $(CHECK).* ### Install Commands install: $(LIBRARIES) -$(MKDIR) $(DESTDIR)\include\botan $(INSTALL_CMD) botan.* $(DESTDIR) $(INSTALL_CMD) build\include\botan\*.h $(DESTDIR)\include\botan