Skip to content
Snippets Groups Projects
Commit 4b2b1749ebb4 authored by Lasse Collin's avatar Lasse Collin
Browse files

Basic support for building with Cygwin and MinGW using

the Autotools based build system. It's not good yet, more
fixes will follow.
parent 8aae252ce54f
Branches
No related tags found
No related merge requests found
......@@ -427,4 +427,5 @@
echo "Initializing Libtool:"
CXX=no
F77=no
AC_LIBTOOL_WIN32_DLL
AC_PROG_LIBTOOL
......@@ -430,4 +431,10 @@
AC_PROG_LIBTOOL
AC_LIBTOOL_RC
dnl Some day we can drop support for libtool 1.5.x. Then the above five
dnl lines can be replaced with these:
dnl LT_INIT([win32-dll])
dnl LT_LANG([Windows Resource])
###############################################################################
......
......@@ -173,5 +173,8 @@
* to operating systems like Windows, or at least don't care about linking
* against static liblzma on them, don't worry about LZMA_API_STATIC. That
* is, most developers will never need to use LZMA_API_STATIC.
*
* Cygwin is a special case on Windows. We rely on GCC doing the right thing
* and thus don't use dllimport and don't specify the calling convention.
*/
#ifndef LZMA_API_IMPORT
......@@ -176,6 +179,6 @@
*/
#ifndef LZMA_API_IMPORT
# if !defined(LZMA_API_STATIC) && defined(_WIN32)
# if !defined(LZMA_API_STATIC) && defined(_WIN32) && !defined(__CYGWIN__)
# define LZMA_API_IMPORT __declspec(dllimport)
# else
# define LZMA_API_IMPORT
......@@ -183,7 +186,7 @@
#endif
#ifndef LZMA_API_CALL
# ifdef _WIN32
# if defined(_WIN32) && !defined(__CYGWIN__)
# define LZMA_API_CALL __cdecl
# else
# define LZMA_API_CALL
......
......@@ -76,7 +76,8 @@
.text
.globl LZMA_CRC32
#if !defined(__MACH__) && !defined(_WIN32) && !defined(__MSDOS__)
#if !defined(__MACH__) && !defined(_WIN32) && !defined(__CYGWIN__) \
&& !defined(__MSDOS__)
.type LZMA_CRC32, @function
#endif
......@@ -275,8 +276,8 @@
.indirect_symbol LZMA_CRC32_TABLE
.long 0
#elif defined(_WIN32)
# ifndef LZMA_API_STATIC
#elif defined(_WIN32) || defined(__CYGWIN__)
# ifdef DLL_EXPORT
/* This is equivalent of __declspec(dllexport). */
.section .drectve
.ascii " -export:lzma_crc32"
......
......@@ -66,7 +66,8 @@
.text
.globl LZMA_CRC64
#if !defined(__MACH__) && !defined(_WIN32) && !defined(__MSDOS__)
#if !defined(__MACH__) && !defined(_WIN32) && !defined(__CYGWIN__) \
&& !defined(__MSDOS__)
.type LZMA_CRC64, @function
#endif
......@@ -258,8 +259,8 @@
.indirect_symbol LZMA_CRC64_TABLE
.long 0
#elif defined(_WIN32)
# ifndef LZMA_API_STATIC
#elif defined(_WIN32) || defined(__CYGWIN__)
# ifdef DLL_EXPORT
/* This is equivalent of __declspec(dllexport). */
.section .drectve
.ascii " -export:lzma_crc64"
......
......@@ -17,7 +17,7 @@
#include "../../common/mythread.h"
#include "../../common/integer.h"
#if !defined(LZMA_API_STATIC) && defined(_WIN32)
#if defined(DLL_EXPORT) && (defined(_WIN32) || defined(__CYGWIN__))
# define LZMA_API_EXPORT __declspec(dllexport)
// Don't use ifdef or defined() below.
#elif HAVE_VISIBILITY
......
......@@ -62,8 +62,6 @@
ALL_CPPFLAGS += -DHAVE_CONFIG_H
STATIC_CPPFLAGS = -DLZMA_API_STATIC
# This works with Wine too while using native GNU make, sed, and rm.
ifdef WINE
ifdef W64
......@@ -213,6 +211,6 @@
$(STRIP) --strip-all liblzma.dll
$(LIBLZMA_OBJS_C): %.o: %.c
$(CC) $(ALL_CPPFLAGS) $(ALL_CFLAGS) -c -o $@ $<
$(CC) -DDLL_EXPORT $(ALL_CPPFLAGS) $(ALL_CFLAGS) -c -o $@ $<
$(LIBLZMA_OBJS_ASM): %.o: %.S
......@@ -217,6 +215,6 @@
$(LIBLZMA_OBJS_ASM): %.o: %.S
$(CC) $(ALL_CPPFLAGS) $(ALL_CFLAGS) -c -o $@ $<
$(CC) -DDLL_EXPORT $(ALL_CPPFLAGS) $(ALL_CFLAGS) -c -o $@ $<
liblzma_static.lib: $(LIBLZMA_OBJS_STATIC)
$(RM) $@
......@@ -224,6 +222,6 @@
$(STRIP) --strip-unneeded $@
$(LIBLZMA_OBJS_STATIC_C): %-static.o: %.c
$(CC) $(STATIC_CPPFLAGS) $(ALL_CPPFLAGS) $(ALL_CFLAGS) -c -o $@ $<
$(CC) $(ALL_CPPFLAGS) $(ALL_CFLAGS) -c -o $@ $<
$(LIBLZMA_OBJS_STATIC_ASM): %-static.o: %.S
......@@ -228,6 +226,6 @@
$(LIBLZMA_OBJS_STATIC_ASM): %-static.o: %.S
$(CC) $(STATIC_CPPFLAGS) $(ALL_CPPFLAGS) $(ALL_CFLAGS) -c -o $@ $<
$(CC) $(ALL_CPPFLAGS) $(ALL_CFLAGS) -c -o $@ $<
.PHONY: liblzma-clean
liblzma-clean:
......@@ -252,7 +250,7 @@
$(STRIP) --strip-all $@
xzdec.exe: liblzma_static.lib $(XZDEC_SRCS) xzdec_rc.o
$(CC) $(STATIC_CPPFLAGS) $(ALL_CPPFLAGS) $(ALL_CFLAGS) $(XZDEC_SRCS) xzdec_rc.o -o $@ liblzma_static.lib
$(CC) -DLZMA_API_STATIC $(ALL_CPPFLAGS) $(ALL_CFLAGS) $(XZDEC_SRCS) xzdec_rc.o -o $@ liblzma_static.lib
$(STRIP) --strip-all $@
lzmadec.exe: liblzma_static.lib $(XZDEC_SRCS) lzmadec_rc.o
......@@ -256,7 +254,7 @@
$(STRIP) --strip-all $@
lzmadec.exe: liblzma_static.lib $(XZDEC_SRCS) lzmadec_rc.o
$(CC) $(STATIC_CPPFLAGS) $(ALL_CPPFLAGS) -DLZMADEC $(ALL_CFLAGS) $(XZDEC_SRCS) lzmadec_rc.o -o $@ liblzma_static.lib
$(CC) -DLZMA_API_STATIC $(ALL_CPPFLAGS) -DLZMADEC $(ALL_CFLAGS) $(XZDEC_SRCS) lzmadec_rc.o -o $@ liblzma_static.lib
$(STRIP) --strip-all $@
.PHONY: xzdec-clean
......@@ -301,7 +299,7 @@
$(STRIP) --strip-all $@
$(XZ_OBJS_STATIC): %-static.o: %-fixed.c
$(CC) $(STATIC_CPPFLAGS) $(ALL_CPPFLAGS) $(ALL_CFLAGS) -c -o $@ $<
$(CC) -DLZMA_API_STATIC $(ALL_CPPFLAGS) $(ALL_CFLAGS) -c -o $@ $<
xz.exe: liblzma_static.lib $(XZ_OBJS_STATIC) xz_rc.o
$(CC) $(ALL_CFLAGS) $(XZ_OBJS_STATIC) xz_rc.o -o $@ liblzma_static.lib
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment