summaryrefslogtreecommitdiff
path: root/www/firefox-sync/files/patch-crypto-src-Makefile
blob: 7dda9f4e6b986824866dd112803f48dfea322baf (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
--- crypto/src/Makefile.orig    2009-08-27 22:08:18.000000000 +0200
+++ crypto/src/Makefile 2009-09-18 21:52:06.000000000 +0200
@@ -45,6 +45,12 @@
 sys := $(shell uname -s)
 wince = $(WINCE)
 
+ifeq ($(sys), FreeBSD)
+  xpidl = $(PREFIX)/lib/libxul/xpidl \
+    -I$(PREFIX)/share/idl/firefox3 \
+    -I$(PREFIX)/share/idl/firefox3/stable
+endif
+
 ifeq ($(wince), 1)
   os = WINNT
   cxx = $(sdkdir)/sdk/bin/arm-wince-gcc
@@ -66,6 +72,14 @@
   so = so
   cppflags += -shared
 else
+ifeq ($(sys), FreeBSD)
+  os = FreeBSD
+  compiler = gcc3
+  cxx = c++
+  so = so
+  cppflags += -shared
+  ldflags += -L$(PREFIX)/lib/firefox3 -L$(PREFIX)/lib -lc
+else
 ifeq ($(sys), MINGW32_NT-6.1)
   os = WINNT
   compiler = msvc
@@ -92,6 +106,7 @@
 endif
 endif
 endif
+endif
 
 # Arch detection
 
@@ -121,6 +136,9 @@
 ifeq ($(machine), x86_64)
   arch = x86_64
 else
+ifeq ($(machine), amd64)
+  arch = x86_64
+else
   $(error: Sorry, your architecture is unknown/unsupported: $(machine))
 endif
 endif
@@ -130,6 +148,7 @@
 endif
 endif
 endif
+endif
 
 # Universal binary so no need for $(arch) for Darwin
 
@@ -188,6 +207,14 @@
           -I$(sdkdir)/include/nspr \
           -I$(sdkdir)/sdk/include
 
+ifeq ($(sys), FreeBSD)
+  headers += -I$(PREFIX)/include/firefox3 \
+             -I$(PREFIX)/include/firefox3/stable \
+             -I$(PREFIX)/include/nspr \
+             -I$(PREFIX)/include/nss \
+             -I$(PREFIX)/include/firefox3/unstable
+endif
+
 # libraries
 libdirs := $(sdkdir)/lib $(sdkdir)/bin
 ifeq ($(wince),1)
@@ -202,6 +229,10 @@
 
 ifeq ($(os), Linux)
   libs := xpcom_core $(libs)
+else
+ifeq ($(os), FreeBSD)
+  libs := xpcom $(libs)
+endif
 endif
 
 # compiler and Linker Flags
@@ -264,6 +295,25 @@
              $(sdkdir)/lib/libxpcomglue_s.a \
              $(libdirs) $(libs)
 else
+ifeq ($(os), FreeBSD)
+  libdirs := $(patsubst %,-L%,$(libdirs))
+  libs := $(patsubst %,-l%,$(libs))
+  cppflags += -pipe -O2 \
+              -fPIC -fno-rtti -fno-exceptions -fno-strict-aliasing \
+              -fno-common -pthread \
+              -Wall -Wconversion -Wpointer-arith -Woverloaded-virtual -Wsynth \
+              -Wno-ctor-dtor-privacy -Wno-non-virtual-dtor -Wcast-align \
+              -Wno-long-long \
+              -include xpcom-config.h $(headers) \
+              -fshort-wchar
+  ldflags += -pthread -pipe -DMOZILLA_STRICT_API \
+             -Wl,-dead_strip \
+             -Wl,-exported_symbol \
+             -Wl,-z,defs -Wl,-h,WeaveCrypto.so \
+             -Wl,-rpath-link,$(sdkdir)/bin \
+             $(sdkdir)/lib/libxpcomglue_s.a \
+             $(libdirs) $(libs)
+else
 ifeq ($(os), SunOS)
   libdirs := $(patsubst %,-L%,$(libdirs))
   libs := $(patsubst %,-l%,$(libs))
@@ -303,6 +353,7 @@
 endif
 endif
 endif
+endif
 
 ######################################################################
 
@@ -361,6 +412,11 @@
 	$(cxx) $(cppflags) -o $@ $(cpp_sources) $(ldflags)
 	chmod +x $@
 else
+ifeq ($(os), FreeBSD)
+  $(so_target): $(idl_headers)
+	$(cxx) $(cppflags) -o $@ $(cpp_sources) $(ldflags)
+	chmod +x $@
+else
 ifeq ($(os), SunOS)
   $(so_target): $(idl_headers)
 	$(cxx) $(cppflags) -o $@ $(cpp_sources) $(ldflags)
@@ -380,3 +436,4 @@
 endif
 endif
 endif
+endif