X-Git-Url: http://git.vrable.net/?a=blobdiff_plain;f=libs3-1.4%2FGNUmakefile.mingw;fp=libs3-1.4%2FGNUmakefile.mingw;h=aab4f02f81b249bc08b70a2c16b9a83178e993d6;hb=1d62668cef91cf8f93f078ff47b4f99dec0f1669;hp=0000000000000000000000000000000000000000;hpb=45a4f324927f8fe3b7e689dd0c9a28716d0d1e93;p=bluesky.git diff --git a/libs3-1.4/GNUmakefile.mingw b/libs3-1.4/GNUmakefile.mingw new file mode 100644 index 0000000..aab4f02 --- /dev/null +++ b/libs3-1.4/GNUmakefile.mingw @@ -0,0 +1,204 @@ +# GNUmakefile +# +# Copyright 2008 Bryan Ischo +# +# This file is part of libs3. +# +# libs3 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, version 3 of the License. +# +# In addition, as a special exception, the copyright holders give +# permission to link the code of this library and its programs with the +# OpenSSL library, and distribute linked combinations including the two. +# +# libs3 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 version 3 +# along with libs3, in a file named COPYING. If not, see +# . + +# I tried to use the autoconf/automake/autolocal/etc (i.e. autohell) tools +# but I just couldn't stomach them. Since this is a Makefile for POSIX +# systems, I will simply do away with autohell completely and use a GNU +# Makefile. GNU make ought to be available pretty much everywhere, so I +# don't see this being a significant issue for portability. + +# All commands assume a GNU compiler. For systems which do not use a GNU +# compiler, write scripts with the same names as these commands, and taking +# the same arguments, and translate the arguments and commands into the +# appropriate non-POSIX ones as needed. libs3 assumes a GNU toolchain as +# the most portable way to build software possible. Non-POSIX, non-GNU +# systems can do the work of supporting this build infrastructure. + + +# -------------------------------------------------------------------------- +# Set libs3 version number + +LIBS3_VER_MAJOR := 1 +LIBS3_VER_MINOR := 4 +LIBS3_VER := $(LIBS3_VER_MAJOR).$(LIBS3_VER_MINOR) + + +# -------------------------------------------------------------------------- +# BUILD directory +ifndef BUILD + BUILD := build +endif + + +# -------------------------------------------------------------------------- +# DESTDIR directory +ifndef DESTDIR + DESTDIR := libs3-$(LIBS3_VER) +endif + + +# -------------------------------------------------------------------------- +# Acquire configuration information for libraries that libs3 depends upon + +ifndef CURL_LIBS + CURL_LIBS := -Lc:\libs3-libs\bin -lcurl +endif + +ifndef CURL_CFLAGS + CURL_CFLAGS := -Ic:\libs3-libs\include +endif + +ifndef LIBXML2_LIBS + LIBXML2_LIBS := -Lc:\libs3-libs\bin -lxml2 +endif + +ifndef LIBXML2_CFLAGS + LIBXML2_CFLAGS := -Ic:\libs3-libs\include +endif + + +# -------------------------------------------------------------------------- +# These CFLAGS assume a GNU compiler. For other compilers, write a script +# which converts these arguments into their equivalent for that particular +# compiler. + +ifndef CFLAGS + CFLAGS = -O3 +endif + +CFLAGS += -Wall -Werror -Wshadow -Wextra -Iinc \ + $(CURL_CFLAGS) $(LIBXML2_CFLAGS) \ + -DLIBS3_VER_MAJOR=\"$(LIBS3_VER_MAJOR)\" \ + -DLIBS3_VER_MINOR=\"$(LIBS3_VER_MINOR)\" \ + -DLIBS3_VER=\"$(LIBS3_VER)\" \ + -D__STRICT_ANSI__ \ + -D_ISOC99_SOURCE \ + -D_POSIX_C_SOURCE=200112L \ + -Dsleep=Sleep -DFOPEN_EXTRA_FLAGS=\"b\" \ + -Iinc/mingw -include windows.h + +LDFLAGS = $(CURL_LIBS) $(LIBXML2_LIBS) + +# -------------------------------------------------------------------------- +# Default targets are everything + +.PHONY: all +all: exported test + + +# -------------------------------------------------------------------------- +# Exported targets are the library and driver program + +.PHONY: exported +exported: libs3 s3 headers + + +# -------------------------------------------------------------------------- +# Install target + +.PHONY: install +install: exported + -@mkdir $(DESTDIR)\bin + -@mkdir $(DESTDIR)\include + -@mkdir $(DESTDIR)\lib + copy $(BUILD)\bin\s3.exe $(DESTDIR)\bin + copy $(BUILD)\bin\libs3.dll $(DESTDIR)\bin + copy $(BUILD)\lib\libs3.a $(DESTDIR)\lib + copy mswin\libs3.def $(DESTDIR)\lib + copy $(BUILD)\include\libs3.h $(DESTDIR)\include + copy LICENSE $(DESTDIR) + copy COPYING $(DESTDIR) + + +# -------------------------------------------------------------------------- +# Compile target patterns + +$(BUILD)/obj/%.o: src/%.c + -@mkdir $(subst /,\,$(dir $@)) + gcc $(CFLAGS) -o $@ -c $< + + +# -------------------------------------------------------------------------- +# libs3 library targets + +LIBS3_SHARED = $(BUILD)/bin/libs3.dll + +.PHONY: libs3 +libs3: $(LIBS3_SHARED) $(BUILD)/lib/libs3.a + +LIBS3_SOURCES := src/acl.c src/bucket.c src/error_parser.c src/general.c \ + src/object.c src/request.c src/request_context.c \ + src/response_headers_handler.c src/service_access_logging.c \ + src/service.c src/simplexml.c src/util.c src/mingw_functions.c + +$(LIBS3_SHARED): $(LIBS3_SOURCES:src/%.c=$(BUILD)/obj/%.o) + -@mkdir $(subst /,\,$(dir $@)) + gcc -shared -o $@ $^ $(LDFLAGS) -lws2_32 + +$(BUILD)/lib/libs3.a: $(LIBS3_SHARED) + -@mkdir $(subst /,\,$(dir $@)) + dlltool --def mswin\libs3.def --dllname $(subst /,\,$<) \ + --output-lib $(subst /,\,$@) + + +# -------------------------------------------------------------------------- +# Driver program targets + +.PHONY: s3 +s3: $(BUILD)/bin/s3.exe + +$(BUILD)/bin/s3.exe: $(BUILD)/obj/s3.o $(BUILD)/obj/mingw_s3_functions.o \ + $(BUILD)/lib/libs3.a + -@mkdir $(subst /,\,$(dir $@)) + gcc -o $@ $^ $(LDFLAGS) -lws2_32 + + +# -------------------------------------------------------------------------- +# libs3 header targets + +.PHONY: headers +headers: $(BUILD)\include\libs3.h + +$(BUILD)\include\libs3.h: inc\libs3.h + -@mkdir $(subst /,\,$(dir $@)) + copy $< $@ + + +# -------------------------------------------------------------------------- +# Test targets + +.PHONY: test +test: $(BUILD)/bin/testsimplexml + +$(BUILD)/bin/testsimplexml: $(BUILD)/obj/testsimplexml.o \ + $(BUILD)/obj/simplexml.o + -@mkdir $(subst /,\,$(dir $@)) + gcc -o $@ $^ $(LIBXML2_LIBS) + + +# -------------------------------------------------------------------------- +# Clean target + +.PHONY: clean +clean: + mswin\rmrf.bat $(BUILD)