### 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_LINK_CMD = %{so_link} LINK_TO = %{link_to} LIB_FLAGS = $(LIB_OPT) $(LANG_FLAGS) $(WARN_FLAGS) $(SO_OBJ_FLAGS) APP_FLAGS = $(APP_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 APP = botan HEADERS = %{include_files} LIBOBJS = %{lib_objs} APPOBJS = %{app_objs} LIBNAME = botan LIBRARIES = $(BOTAN_LIB) # This will be either a static lib or the DLL import lib BOTAN_LIB = $(LIBNAME).%{static_suffix} all: $(APP) ### Build Commands %{lib_build_cmds} %{app_build_cmds} ### Link Commands $(APP): $(LIBRARIES) $(APPOBJS) $(CXX) /Fe$@ $(APPOBJS) $(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}\tests\* $(RM) *.manifest *.exp *.dll $(RM) $(LIBRARIES) $(APP) 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}\tests $(RMDIR) %{build_dir} $(RM) Makefile $(LIBNAME).* $(APP).* ### Install Commands install: $(LIBRARIES) -$(MKDIR) $(DESTDIR)\include\botan $(INSTALL_CMD) botan.* $(DESTDIR) $(INSTALL_CMD) build\include\botan\*.h $(DESTDIR)\include\botan