Compare commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
845315eeb5 | ||
|
|
803306eea5 | ||
|
|
94ef0d75d7 | ||
|
|
604d439d57 | ||
|
|
d37f8c7bab | ||
|
|
c7ab94a5a5 | ||
|
|
a6428ce968 | ||
|
|
8dd0cd3050 | ||
|
|
baede8d8bd | ||
|
|
2328ec7b31 | ||
|
|
719df7b241 | ||
|
|
dff7f0539a | ||
|
|
f03cf048d8 | ||
|
|
22ffc2ec15 | ||
|
|
09a0edb39a | ||
|
|
a0a8a7a13e | ||
|
|
8f97c06408 | ||
|
|
af9f8fc6a9 | ||
|
|
ef6feb2377 | ||
|
|
4e5ffae80c | ||
|
|
3597f438cd | ||
|
|
ad9cc86117 | ||
|
|
6656494fda | ||
|
|
06ac7dd8f1 | ||
|
|
76f4d19b42 | ||
|
|
d64a1f704b | ||
|
|
aa27148868 | ||
|
|
58c42df669 | ||
|
|
9c0761826b | ||
|
|
63f90dfeb3 | ||
|
|
10b31ef2a9 | ||
|
|
bb3fd81c4d | ||
|
|
2cd6ed2928 | ||
|
|
fde191f6aa | ||
|
|
1c76852b9c | ||
|
|
2491f417da | ||
|
|
443b8070f2 | ||
|
|
bb51c1395b | ||
|
|
3e03cf3d88 | ||
|
|
d6a6bf9719 | ||
|
|
3a2a9d1b7d | ||
|
|
dda68ff53f | ||
|
|
0ef17c6ad7 | ||
|
|
ac58d23713 | ||
|
|
5971972525 | ||
|
|
4cc6662837 | ||
|
|
226cbf48d8 | ||
|
|
7d9909c247 | ||
|
|
649c096e70 | ||
|
|
ce02d5f5c8 | ||
|
|
90c667011d | ||
|
|
0622e85e27 | ||
|
|
355f01f0a4 | ||
|
|
b0d6cf0842 | ||
|
|
16b15be81b | ||
|
|
2b7a8ca14e | ||
|
|
c338813d1c | ||
|
|
2f38d5b00d | ||
|
|
7c6738e32b | ||
|
|
86bfeba68a | ||
|
|
a94aa81c07 | ||
|
|
080c1ed865 | ||
|
|
c6f13e347c | ||
|
|
3cea361cc9 | ||
|
|
f6546fc336 | ||
|
|
8d12ab45c9 | ||
|
|
7dfd9184b7 | ||
|
|
0977bc00e3 | ||
|
|
2ea847ce0b | ||
|
|
fb2b5e0487 | ||
|
|
cce30bb55b | ||
|
|
98af4fc747 | ||
|
|
2c04edb1b3 | ||
|
|
e4500e0c5c | ||
|
|
820c4a86f0 | ||
|
|
d6253ca194 | ||
|
|
33e27917ee | ||
|
|
cea04368a9 | ||
|
|
fe9eed7322 | ||
|
|
33304e2e7a | ||
|
|
4cd51a7de6 | ||
|
|
5ffd65b1a2 | ||
|
|
82b96f4f63 | ||
|
|
e0ea15adb9 | ||
|
|
209ce0c0a9 | ||
|
|
620488c318 | ||
|
|
a270926397 | ||
|
|
8c830b6f1a | ||
|
|
33d58189c4 | ||
|
|
5d8370a970 | ||
|
|
fb3d37e641 | ||
|
|
b27f747ff2 | ||
|
|
2854783aeb | ||
|
|
4b8aa3deaf | ||
|
|
f5397b7c68 | ||
|
|
047620492c | ||
|
|
bf51f5d6c9 | ||
|
|
d7f27e16fe | ||
|
|
cfb30c69c0 | ||
|
|
8ed0335b7b | ||
|
|
313179dfbe | ||
|
|
97503f2e81 | ||
|
|
156bda2600 | ||
|
|
6a5ad25bde | ||
|
|
6d06a3c83c | ||
|
|
76cb03b523 | ||
|
|
6a2f8c655e | ||
|
|
4f3bf50acd | ||
|
|
84c1679e14 | ||
|
|
5ce457b6f6 | ||
|
|
071d79b7f7 | ||
|
|
c4ccae3ef8 | ||
|
|
3e67fa00d4 | ||
|
|
e34ebdf0de | ||
|
|
c6bdd3a455 | ||
|
|
81f22b68d7 | ||
|
|
888084b19b | ||
|
|
e2ec2a2f0d | ||
|
|
e80245ba15 | ||
|
|
3ef94811eb | ||
|
|
d78ff306e4 | ||
|
|
06285eb556 | ||
|
|
0a4378b9fc | ||
|
|
8472201a36 | ||
|
|
554d3f4950 | ||
|
|
300713d1ad | ||
|
|
0c06122b36 | ||
|
|
08bf485229 | ||
|
|
0b3bc255e6 | ||
|
|
c8f0acf144 | ||
|
|
6152d64d6a | ||
|
|
916daa76c9 | ||
|
|
9636f5f0f5 | ||
|
|
bda503d3c9 | ||
|
|
d39a79b121 | ||
|
|
68cd7ecc70 | ||
|
|
3e82292cfc | ||
|
|
f825309d6e | ||
|
|
852c7041d2 | ||
|
|
a9e24caf67 | ||
|
|
f006547b37 | ||
|
|
fb796ce1c4 | ||
|
|
20301dd0dd | ||
|
|
8178aa91d2 | ||
|
|
47f963f7dc | ||
|
|
dade11a029 | ||
|
|
4225dda194 | ||
|
|
e1fdff1db7 | ||
|
|
369a79b110 | ||
|
|
a692d66106 | ||
|
|
5957ad03ab | ||
|
|
7dbba28a18 | ||
|
|
0c260945b1 | ||
|
|
9aaf94fb06 | ||
|
|
2ffc14a778 | ||
|
|
8910b2f0cb | ||
|
|
e2323967e8 | ||
|
|
d6fdffd59b | ||
|
|
fd08b27857 | ||
|
|
a6babd6e0e | ||
|
|
7f371314ce | ||
|
|
75e82917aa | ||
|
|
1befc7e7c5 | ||
|
|
ce86901784 | ||
|
|
1e40dfa2c0 | ||
|
|
aa12fbe1c2 | ||
|
|
510e699bbe | ||
|
|
5956997e94 | ||
|
|
6cd40d17fe | ||
|
|
e48fae561b | ||
|
|
b814924352 | ||
|
|
dc674d1991 | ||
|
|
f3ecf42f9f | ||
|
|
c5f6f68225 | ||
|
|
7aaaf6abb6 | ||
|
|
63c942bd20 | ||
|
|
ebbef08258 | ||
|
|
1aff489efe | ||
|
|
83e088870e | ||
|
|
173a4e7912 | ||
|
|
9ba567752a | ||
|
|
f0f0d448ae | ||
|
|
63f63c4142 | ||
|
|
0a135a08b0 | ||
|
|
802b15228c | ||
|
|
2459a92a23 | ||
|
|
34fc597cc8 | ||
|
|
13483d3ea2 | ||
|
|
2776da3660 | ||
|
|
d819ab361a | ||
|
|
85cbe8e9cd | ||
|
|
519fea6f66 | ||
|
|
f35aba90ab | ||
|
|
567c2cc2ad | ||
|
|
47576ae8c0 | ||
|
|
b25b33a3a1 | ||
|
|
745bc86275 | ||
|
|
128ef1e6fc | ||
|
|
b550bb287a | ||
|
|
0beb3c886a | ||
|
|
b472e90849 | ||
|
|
16e09e7e82 | ||
|
|
0eafa778b0 | ||
|
|
f8f6f08de9 | ||
|
|
226ebe0c75 | ||
|
|
8c59a8bebb | ||
|
|
08c72911c5 | ||
|
|
71ba8cf9e5 | ||
|
|
81c27fe5dc | ||
|
|
a04773ccf3 | ||
|
|
7273f790d6 | ||
|
|
b69647d881 | ||
|
|
7226577fcb | ||
|
|
f323fa8b88 | ||
|
|
875094a359 | ||
|
|
38e7d29a8f | ||
|
|
c716ea4b30 | ||
|
|
a2c398540b | ||
|
|
4d821f1261 | ||
|
|
baaac575c1 | ||
|
|
ba78c201b8 | ||
|
|
0ec8d76220 | ||
|
|
968a83c380 | ||
|
|
b6a2db169e | ||
|
|
4e615fbce4 | ||
|
|
57251327ae | ||
|
|
9a0becd470 | ||
|
|
974cc4b561 | ||
|
|
165f23753f | ||
|
|
8ac6426d91 | ||
|
|
97c1cf55c8 | ||
|
|
c43ea0e690 | ||
|
|
09d84aedb3 | ||
|
|
40585da9a4 | ||
|
|
5abd6029d5 | ||
|
|
d766cf5c56 | ||
|
|
91246d6c26 | ||
|
|
7f54a7ec2c | ||
|
|
f96ec0a1c2 | ||
|
|
e3af2978e1 | ||
|
|
3298c06577 | ||
|
|
6a06ed57d2 | ||
|
|
1204c5ddca | ||
|
|
28deda2425 | ||
|
|
5446ecf43e | ||
|
|
3170d5dec1 | ||
|
|
092ba3e06d | ||
|
|
deaef6ca2b | ||
|
|
e2678c177d | ||
|
|
9b1e65b95a | ||
|
|
3b5d96f71f | ||
|
|
eb54fbeb68 | ||
|
|
aa2e887a55 | ||
|
|
64711a7056 | ||
|
|
7b3550d474 | ||
|
|
7bfe5b4dbb | ||
|
|
3f82453a64 | ||
|
|
1aefb681f9 | ||
|
|
025295a330 | ||
|
|
d0980f215a | ||
|
|
77e065082d | ||
|
|
c9db235664 | ||
|
|
5ea5adeb55 | ||
|
|
24feab23a0 | ||
|
|
183f1cdeca | ||
|
|
84d76ac775 | ||
|
|
6d2099852b | ||
|
|
c0739cf1ab | ||
|
|
4738ad7f56 | ||
|
|
2d5f01af29 | ||
|
|
aef5cb8a2c | ||
|
|
fd6033e1d4 | ||
|
|
e98e8e90c4 | ||
|
|
5e5a87f0f9 | ||
|
|
0902e0c557 | ||
|
|
64a8244552 | ||
|
|
9394e181c9 | ||
|
|
5c3bd1dc5a | ||
|
|
a6b6c2b57b | ||
|
|
708bc48823 | ||
|
|
4a1a938094 | ||
|
|
3d060d7bdf | ||
|
|
e308b24d2e | ||
|
|
a47343ff0a | ||
|
|
ac76b6411d | ||
|
|
843086634d | ||
|
|
0b2eb2d930 | ||
|
|
ac9d26900b | ||
|
|
a7240d523f | ||
|
|
f6e5e20cdb | ||
|
|
5eeff07d8c | ||
|
|
db7d0f7578 | ||
|
|
f5fad8f51b | ||
|
|
1237693762 | ||
|
|
6be1ad5fdf | ||
|
|
35f7fd9df3 | ||
|
|
83e722a99b | ||
|
|
bd5f8dc5f7 | ||
|
|
6dcd6f1665 | ||
|
|
a7ee61b586 | ||
|
|
fbddb83cc7 | ||
|
|
7d3bd637a9 | ||
|
|
fee5e5d027 | ||
|
|
585fe6afd1 | ||
|
|
183e9cfb09 | ||
|
|
2a32c4b828 | ||
|
|
e89ed86dae | ||
|
|
01581751b1 | ||
|
|
3cd29c0fbc | ||
|
|
1c5382af9e | ||
|
|
33616550e8 | ||
|
|
344d7d0bf2 | ||
|
|
977270bf3c | ||
|
|
0dcd717a1b | ||
|
|
e4a91b2383 | ||
|
|
137b8598e2 | ||
|
|
dee472f026 | ||
|
|
0b2edf612c | ||
|
|
e234418f51 | ||
|
|
abc698d32e | ||
|
|
c2a4cfeefc | ||
|
|
c7995fa2b7 | ||
|
|
cd03cebb91 | ||
|
|
7ccfcce9d7 | ||
|
|
d6bc5d5a88 | ||
|
|
a02218d634 | ||
|
|
86edc64a19 | ||
|
|
8f00ab3dfe | ||
|
|
75a1112986 | ||
|
|
bb3ea494a6 | ||
|
|
8117919fe5 | ||
|
|
9a6b3236af | ||
|
|
e924b1a8ec | ||
|
|
4fbfa1e3e0 | ||
|
|
eea3b74778 | ||
|
|
47582bf729 | ||
|
|
882b2ed721 | ||
|
|
4ab5ae3ad9 | ||
|
|
ffe4491094 | ||
|
|
fa4fa67b87 | ||
|
|
366c3bab10 | ||
|
|
b3f21cbe32 | ||
|
|
50179cc27a | ||
|
|
03c6abca60 | ||
|
|
2a663f658a | ||
|
|
46d4fb576d | ||
|
|
9bc52f594e | ||
|
|
87bf0e121d | ||
|
|
5560f5d721 | ||
|
|
aee1fea979 | ||
|
|
c71dc28c76 | ||
|
|
dfffef1d9c | ||
|
|
6546511d2e | ||
|
|
34cf176e24 | ||
|
|
0a5c086b26 | ||
|
|
44c1cb8e8f | ||
|
|
44f79cb03f | ||
|
|
62ea86c485 | ||
|
|
07eddfe53d | ||
|
|
1f32363f66 | ||
|
|
33fae9f482 | ||
|
|
12a0281283 | ||
|
|
d4f2304c82 | ||
|
|
db80ef4bfb | ||
|
|
0d85ac6a18 | ||
|
|
8e46fcfbb2 | ||
|
|
c813fef558 | ||
|
|
a9d21ddc39 | ||
|
|
d489d9a83c | ||
|
|
ee89cd47f7 | ||
|
|
6822013d5d | ||
|
|
fa26dfe9c7 | ||
|
|
1ac22072a5 | ||
|
|
eaf484b9c7 | ||
|
|
1b7ad2c4f5 | ||
|
|
d936a2b75c | ||
|
|
62160ac662 | ||
|
|
d51481faaa | ||
|
|
0d9a72b058 | ||
|
|
2de96e705f | ||
|
|
5ce6ead32e | ||
|
|
1444197e50 | ||
|
|
169a4ea24d | ||
|
|
c9b0af1cfe | ||
|
|
3a542eb8d0 | ||
|
|
4f83b8954b | ||
|
|
b2bbcc2836 | ||
|
|
9fd7c93ef2 | ||
|
|
2d09dc3763 | ||
|
|
819d6b2dba | ||
|
|
bb988da66a | ||
|
|
2769173b5a | ||
|
|
9373f1b57f | ||
|
|
6f40ca27e3 | ||
|
|
934aa32325 | ||
|
|
fd9d13e486 | ||
|
|
55428b80dc | ||
|
|
029078e44f | ||
|
|
7b6bb1f34a | ||
|
|
9d4957a968 | ||
|
|
ee6e6b84bd | ||
|
|
84ec758cfe | ||
|
|
e3219f3892 | ||
|
|
0ef9b18252 | ||
|
|
6b462147e5 | ||
|
|
132629bc5a | ||
|
|
9d2cc7a7b4 | ||
|
|
0d4813b711 | ||
|
|
1c42c60532 | ||
|
|
c3a2fa8558 | ||
|
|
6c09bb657f | ||
|
|
61504814dd | ||
|
|
a2051d0307 | ||
|
|
578e55a780 | ||
|
|
1a3fd7f731 | ||
|
|
eee0eb3665 | ||
|
|
60d80c4717 | ||
|
|
1906ed61c0 | ||
|
|
545194cb33 | ||
|
|
619559eee8 | ||
|
|
2b058231dd | ||
|
|
0200ff055e | ||
|
|
e36c399be7 | ||
|
|
2f5d8f3071 | ||
|
|
1ce2869a30 | ||
|
|
f988474be6 | ||
|
|
365b5ce735 | ||
|
|
5d1348ff9b | ||
|
|
1cd59ebca3 | ||
|
|
08a5bfbfe1 | ||
|
|
d0156f76dc | ||
|
|
30a3634208 | ||
|
|
4380f75137 | ||
|
|
0d7e34f9d9 | ||
|
|
3b192c02e0 | ||
|
|
f4b2cda8b6 | ||
|
|
1bd95d170e | ||
|
|
8f0947df70 | ||
|
|
6dfe7ddab6 | ||
|
|
654fd3e6fb | ||
|
|
aa039e5d18 | ||
|
|
95cabe1226 | ||
|
|
f9c9c7b27b | ||
|
|
df99ba2e33 | ||
|
|
0ee046f2e6 | ||
|
|
a77583dc2b | ||
|
|
63e9e8a355 | ||
|
|
23d550b1b0 | ||
|
|
376453e988 | ||
|
|
0860f3e0c8 | ||
|
|
bd7ff6a67c | ||
|
|
a8000fe1d0 | ||
|
|
1070c33fe6 | ||
|
|
90a8a2dea5 | ||
|
|
f7975f9f06 | ||
|
|
8cb033e2b2 | ||
|
|
274d6dc07a | ||
|
|
710d0775d7 | ||
|
|
f15e22ae58 | ||
|
|
5fbc38d4bd | ||
|
|
4b009ce440 | ||
|
|
18726e76eb | ||
|
|
9929332dd2 | ||
|
|
41a29ab74d | ||
|
|
e871ea1539 | ||
|
|
4a8e32c490 | ||
|
|
0f50a30cbe | ||
|
|
0352799a55 | ||
|
|
d21102c8cb | ||
|
|
f0515056fc | ||
|
|
f75acc76f4 | ||
|
|
e934292152 | ||
|
|
f76db62c5a | ||
|
|
592f3653c0 | ||
|
|
b3781ea229 | ||
|
|
6f3c902c73 | ||
|
|
9eaf490781 | ||
|
|
0fe17b8fa1 | ||
|
|
7755912732 | ||
|
|
62068bd910 | ||
|
|
025997b62d | ||
|
|
6d3f9ca769 | ||
|
|
358628a447 | ||
|
|
633a2dce6a | ||
|
|
0a3a4e6778 | ||
|
|
14d805c960 | ||
|
|
4c04c9a3e7 | ||
|
|
c80de5ac63 | ||
|
|
fd655e5afa | ||
|
|
06ec74ded7 | ||
|
|
f3ba08608c | ||
|
|
fa962e9727 | ||
|
|
fcc03d62f2 | ||
|
|
4c5a409f27 | ||
|
|
59bae954a4 | ||
|
|
7db2b70af5 | ||
|
|
2f696080ef | ||
|
|
ba3b2471cc | ||
|
|
1e58918abd | ||
|
|
45b6326aa3 | ||
|
|
ec819f5eca | ||
|
|
5b926da192 | ||
|
|
7ad06822fd | ||
|
|
943e06425f | ||
|
|
23e9e44136 | ||
|
|
f21e0db417 | ||
|
|
731e5d2aea | ||
|
|
57c0007249 | ||
|
|
48d98f5657 | ||
|
|
5e25e62b8f | ||
|
|
dff8f9dfd7 | ||
|
|
5931cd8cca | ||
|
|
55ae8f05f5 | ||
|
|
acef635b77 | ||
|
|
1017822d0e | ||
|
|
76ed180ce5 | ||
|
|
51073a55d1 | ||
|
|
1f1c6b7971 | ||
|
|
fc8e4b9df4 | ||
|
|
7981cee5ae | ||
|
|
84f41ba312 | ||
|
|
8c227ca509 | ||
|
|
cb5f2d9d51 | ||
|
|
231067ba14 | ||
|
|
6b24d5c6b5 | ||
|
|
7ec623b224 | ||
|
|
4a0c30526b | ||
|
|
a91c598c07 | ||
|
|
69ec7474b7 |
+85
-8
@@ -1,21 +1,98 @@
|
||||
# Ignore *.pro.user files
|
||||
*.pro.user
|
||||
*.pro.user.*
|
||||
CMakeLists.txt.user
|
||||
# Robomongo-specific
|
||||
|
||||
CMakeLists.txt.user*
|
||||
|
||||
.sconsign.dblite
|
||||
.sconf_temp
|
||||
.scons
|
||||
|
||||
*.kate-swp
|
||||
*.swp
|
||||
|
||||
target/
|
||||
target-debug/
|
||||
target-release/
|
||||
libs/
|
||||
*~
|
||||
*.autosave
|
||||
.DS_Store
|
||||
|
||||
/build
|
||||
/build2
|
||||
|
||||
/src/robomongo/robomongo.pro.user.1.3
|
||||
|
||||
/src/third-party/mongodb/src/third_party/js-1.7/jswgen
|
||||
.idea/
|
||||
|
||||
# Created by http://www.gitignore.io
|
||||
|
||||
### C++ ###
|
||||
# Compiled Object files
|
||||
*.slo
|
||||
*.lo
|
||||
*.o
|
||||
*.obj
|
||||
|
||||
# Compiled Dynamic libraries
|
||||
*.so
|
||||
*.so.*
|
||||
*.dylib
|
||||
*.dll
|
||||
|
||||
# Compiled Static libraries
|
||||
*.lai
|
||||
*.la
|
||||
*.a
|
||||
*.lib
|
||||
|
||||
# Executables
|
||||
*.exe
|
||||
*.out
|
||||
*.app
|
||||
|
||||
### Linux ###
|
||||
*~
|
||||
|
||||
# KDE directory preferences
|
||||
.directory
|
||||
|
||||
|
||||
### OSX ###
|
||||
.DS_Store
|
||||
.AppleDouble
|
||||
.LSOverride
|
||||
|
||||
### Qt ###
|
||||
# C++ objects and libs
|
||||
|
||||
*.slo
|
||||
*.lo
|
||||
*.o
|
||||
*.a
|
||||
*.la
|
||||
*.lai
|
||||
*.so
|
||||
*.dll
|
||||
*.dylib
|
||||
|
||||
# Qt-es
|
||||
|
||||
/.qmake.cache
|
||||
/.qmake.stash
|
||||
*.pro.user
|
||||
*.pro.user.*
|
||||
*.moc
|
||||
|
||||
# QtCreator
|
||||
|
||||
*.autosave
|
||||
*.creator.user
|
||||
|
||||
|
||||
### Windows ###
|
||||
# Windows image file caches
|
||||
Thumbs.db
|
||||
ehthumbs.db
|
||||
|
||||
# Folder config file
|
||||
Desktop.ini
|
||||
|
||||
# Recycle Bin used on file shares
|
||||
$RECYCLE.BIN/
|
||||
|
||||
@@ -0,0 +1,400 @@
|
||||
0.9.0-RC6 / February 13, 2016
|
||||
|
||||
Most important changes: support for MongoDB 3.x and WiredTiger engine. Robomongo
|
||||
now embeds MongoDB 3.2 shell. It means that you can now use the latest
|
||||
shell functionality. Both MONGODB-CR and SCRAM-SHA-1 authentication mechanisms are
|
||||
supprted. Also, we now allow direct connections to Replica Set members and
|
||||
support IPv6 protocol. Loading of huge list of collections is now faster.
|
||||
|
||||
Fixed incorrect representation of floating-point numbers (fixed since RC3).
|
||||
This bug was a reason of a big number of issues:
|
||||
|
||||
#910, #748, #697, #699, #760, #815, #870, #892,
|
||||
#894, #905, #945, #974, #978, #990, #831, #842
|
||||
|
||||
What's new in RC7 (March 4, 2016 )
|
||||
http://blog.robomongo.org/robomongo-rc7
|
||||
|
||||
What's new in RC6 (February 13, 2016 )
|
||||
http://blog.robomongo.org/ipv6-protocol
|
||||
|
||||
What's new in RC5 (February 8, 2016 )
|
||||
http://blog.robomongo.org/campaign-is-over-robomongo-is-not/
|
||||
|
||||
What's new in RC4 (February 1, 2016 )
|
||||
http://blog.robomongo.org/robomongo-rc4
|
||||
|
||||
What's new in RC3 (January 29, 2016 )
|
||||
http://blog.robomongo.org/robomongo-0-9-0-rc3-released
|
||||
|
||||
What's new in RC2 (January 26, 2016)
|
||||
http://blog.robomongo.org/robomongo-rc2-for-windows-mac-os-x-and-linux
|
||||
|
||||
What's new in RC1 (January 17, 2016)
|
||||
http://blog.robomongo.org/robomongo-rc1-with-full-support-for-mongodb-3
|
||||
|
||||
|
||||
0.8.5 / March 10, 2015
|
||||
|
||||
Release 0.8.5 is now deprecated because of a critical bug, that is
|
||||
described here: http://blog.robomongo.org/robomongo-0-9-0-rc3-released
|
||||
|
||||
We recommend to use Robomongo 0.9.0 or newer.
|
||||
|
||||
* [Stephen Steneker]
|
||||
- OS X build fixes for XCode 5 / libc++ (#524)
|
||||
- OS X specific keyboard shortcut tips (#505)
|
||||
- View documents fail if collection name is "group" (#414)
|
||||
- Problem with slash in collection names (#404)
|
||||
- Add shortcut to open JS file (#408)
|
||||
- Fullscreen mode not working on OS X (#519)
|
||||
- Usability request - add initial curly braces to command bar (#506)
|
||||
- TTL index should allow expiry of 0 seconds (#500)
|
||||
- Add line numbers to JSON editing windows on OS X (#449)
|
||||
- Add user preference to have line numbers displayed by default (#564)
|
||||
- Space after document causes validation error (#544)
|
||||
- Expand current server as soon as you connect to it (#405)
|
||||
- Switching tabs using standard keys on OS X (#87)
|
||||
- Cannot make the Edit Document Window smaller (#548)
|
||||
- Consistent numbering for tree/table/text view items (#421)
|
||||
- Reload Query with keyboard shortcut doesn't work (#551)
|
||||
- Rename "Reload" to "Re-execute query" (#447)
|
||||
- Add "Copy Timestamp from ObjectId" to context menu for ObjectId fields (#559)
|
||||
- Bug: Type of Double changed to Int32 on save document (#622)
|
||||
- "Duplicate Query In New Tab": add to Window menu with keyboard shortcut (#631)
|
||||
- No errors logged if settings directory cannot be created or settings file cannot be written to (#636)
|
||||
- Show execution time for operations that don't return results (#455)
|
||||
- Disable broken "Copy Collection to Database" misfeature (#398)
|
||||
* [Vladimir Belozyorov]
|
||||
- View mode reset to default after no results (#509)
|
||||
- Comment / uncomment selected code in the shell (#467)
|
||||
- Passphrase and password should be hidden in authentication tab (#433)
|
||||
- Cursor initialization - place between curly brackets for default find({}) query (#592)
|
||||
- Include full date/time for log entries (#596)
|
||||
- Option to disable selected code autoexecution when opening a new tab (#514)
|
||||
- Tooltip fixes to match current keyboard shortcuts (#598)
|
||||
- Expand/collapse multiple selections (#591)
|
||||
- Changes in toolbars visibility are saved in config file (#457)
|
||||
- Include connection name under shell tabs (#47)
|
||||
* [Sergey Gavruk]
|
||||
- SettingsManager typo (#558)
|
||||
- Ability to disable autocompletion (#512)
|
||||
* [Kanstantsin Kamkou]
|
||||
- Increase display width for limit & offset input fields (#458)
|
||||
* [volans-]
|
||||
- CreateUserDialog.cpp: fixed typo in warning message
|
||||
* [Andres Kievsky]
|
||||
- Added new app icon in a variety of png and iDraw formats (#693)
|
||||
* [Michael Steinacher]
|
||||
- Retina text display support (#724)
|
||||
|
||||
0.8.4 / November 27, 2013
|
||||
|
||||
Read about updates in this version here:
|
||||
http://robomongo.org/whats-new-in/robomongo-0.8.4.html
|
||||
|
||||
RC1:
|
||||
|
||||
* SSH support (#117)
|
||||
* SSL support (first steps) (#100)
|
||||
* Create or edit index problem (#341)
|
||||
* Regexp error (with non-latin symbols) (#351)
|
||||
* Support for latin characters in edit document console (#347)
|
||||
* Robomongo fails to execute shell "comments" if the comment contains a non-latin character! (#334)
|
||||
* Crash when add ISODate field (#350)
|
||||
* Crash at executing several disconnections in a row (#290)
|
||||
* Deleting multiple documents prompts for each document (#386)
|
||||
* Connection context menu appears independently of position of Robomongo instance.
|
||||
* Crash at pressing "Ctrl+T" without any connection.
|
||||
|
||||
RC2:
|
||||
|
||||
* SSH now works on Mac OS X Mavericks (#401)
|
||||
* Fixed crash when parsing date (#356)
|
||||
|
||||
Final:
|
||||
|
||||
* Selected view mode of result panels now preserved between executions. Implemented by Vladimir Belozyorov (github.com/VBelozyorov) (#402)
|
||||
|
||||
|
||||
0.8.3 / October 1, 2013
|
||||
|
||||
Read about updates in this version here:
|
||||
http://robomongo.org/whats-new-in/robomongo-0.8.3.html
|
||||
|
||||
* Enable query logging (#108)
|
||||
* Inserting multiple documents from UI (#173)
|
||||
* Removing multiple documents from UI (#174)
|
||||
* Retain current view mode when running search (#93, #79)
|
||||
* Left panel collections/functions/users navigation doesn't work when authenticating against the DB (#282)
|
||||
* A way to disable Alt + number shortcut (#192)
|
||||
* Support mongodb 2.4.x style users (#139)
|
||||
* Add "Copy JSON" menu item to context menu (#298)
|
||||
* JSON list validation (#246)
|
||||
* Crash creating new Database (#291)
|
||||
* Incorrect handling of TTL Indexes (#313)
|
||||
* Add the document _id in the tree view (#142)
|
||||
* BSON Undefined type doesn't rendered to string correctly (#306)
|
||||
* Entering incorrect symbols as database name isn't handled properly (#262)
|
||||
* Ability to select UI theme
|
||||
* We now show number of fields (inside objects) and number of items (inside arrays) in Tree View.
|
||||
* Support for Mac OS X 10.6 (#287)
|
||||
* Support for Mac OS X 10.9 (#254)
|
||||
|
||||
|
||||
0.8.2 / September 13, 2013
|
||||
|
||||
Read about updates in this version here:
|
||||
http://robomongo.org/whats-new-in/robomongo-0.8.2.html
|
||||
|
||||
|
||||
0.8.1 / September 6, 2013
|
||||
|
||||
Read about updates in this version here:
|
||||
http://robomongo.org/whats-new-in/robomongo-0.8.1.html
|
||||
|
||||
* Table Mode (in this version, only for the first-level fields in documents) (#72)
|
||||
* Paging Widget tweaks (#247, #203, #244, #243)
|
||||
* ~/.robomongorc.js file is loaded automatically when new shell is opened
|
||||
(c:\Users\Name\.robomongorc.js for Windows)
|
||||
* "Load .mongorc.js" menu item in "Options" top-level now allow to enable/disable loading
|
||||
of ~/.mongorc.js file. By default it will not load this file.
|
||||
* Batch Size now configurable (in this version only manually via ~/.config/robomongo.json)
|
||||
* JSON parser doesn't correctly parse numbers when locale isn't en_EN (#246, #253)
|
||||
* "Display Dates In" options doesn't saved/loaded correctly (#261)
|
||||
* [Linux] Support for CentOS
|
||||
* [Linux] Linux packages now takes 2x less space (10mb instead of 20mb)
|
||||
* [Windows] Desktop icon isn't created despite corresponding checkbox was checked at installation. (#260)
|
||||
* [Windows] Invalid symbols in installer for Windows if display language of system isn't English (#259)
|
||||
|
||||
|
||||
0.8.0 / August 23, 2013
|
||||
|
||||
Read about updates in this version here:
|
||||
http://robomongo.org/whats-new-in/robomongo-0.8.0.html
|
||||
|
||||
* Ability to save and load files for currently opened shell (#96)
|
||||
* MongoDB Index management (#74)
|
||||
* Expand all children recursively (#106)
|
||||
* Ability to toggle line numbers (press F11) for any editor in Robomongo (#112)
|
||||
* View Mode settings is persisted now (thanks, Luke Thompson!) (#114)
|
||||
* Search capability for any editor in Robomongo - press (Ctrl + F) (#32)
|
||||
* Timezone support: UTC or Local (#224)
|
||||
* Auto-complete on "Tab" (#95)
|
||||
* Fixed incorrect handling of Dates (#111)
|
||||
* Fixed incorrect handling of collections with leading underscore (_) symbol (#109)
|
||||
* Fixed incorrect rendering of float numbers (#115)
|
||||
* Fixed incorrect handling of Int64 numbers (#157)
|
||||
* Fixed incorrect parsing of DBRef sub-objects (#113)
|
||||
* New build system, based on CMake. Greatly simplified build and package process.
|
||||
* Qt updated to 5.1 version.
|
||||
* QScintilla updated to 2.7.2 version.
|
||||
|
||||
|
||||
0.7.1 / April 13, 2013
|
||||
|
||||
* Fixed crash when right-clicking on non-primitive elements in Tree View (#85)
|
||||
* Alt + Cmd + Arrow for switching tabs on Mac (#82)
|
||||
* Several minor bugs fixed (including #82)
|
||||
|
||||
|
||||
0.7.0 / April 4, 2013
|
||||
|
||||
* Support for UUIDs (read more: http://robomongo.org/articles/uuids.html)
|
||||
|
||||
|
||||
0.6.9 / April 3, 2013
|
||||
|
||||
* Password is hidden by default (#65)
|
||||
* Fixed incorrect rendering of large values for the db.stats() results (#70)
|
||||
* Collection names with invalid (for JS var name) characters now rendered correctly (#71)
|
||||
|
||||
|
||||
0.6.8 / April 1, 2013
|
||||
|
||||
* Support for '~/.mongorc.js'
|
||||
* Various Mac OS X UI fixes
|
||||
* Fixed crash when pressing Ctrl + W (#60)
|
||||
* "Copy Value" context menu item for documents in Tree View
|
||||
|
||||
|
||||
0.6.7 / March 26, 2013
|
||||
|
||||
* Fixed creation of new tabs based on the current one. Before this fix initial
|
||||
database for new tab wasn't identical to the "parent". (#56)
|
||||
* Support for collections that starts from digits (#54)
|
||||
* [Sergey Gavruk] Duplicate Collection feature (Collection -> Duplicate Collection
|
||||
* Collection -> Reindex will not run immediately, as before
|
||||
* Fixed incorrect disposing of tabs resources (connections etc.) (#42)
|
||||
* [Stephen Steneker] Fixed KeepAlive invalid commands, when not authorised (#41)
|
||||
* [Sergey Gavruk] Various Mac OS X UI fixes.
|
||||
|
||||
|
||||
0.6.6 / March 23, 2013
|
||||
|
||||
* Fixed possible crash when viewing results in text mode (#34)
|
||||
* Fixed possible crash when testing connection (Diagnostic window)
|
||||
* Memory leak in explorer's database tree fixed.
|
||||
|
||||
|
||||
0.6.5 / March 17, 2013
|
||||
|
||||
* Fixed "Dropped connection" issue (#28).
|
||||
* Windows Installer now be used to destribute Robomongo.
|
||||
|
||||
|
||||
0.6.4 / March 10, 2013
|
||||
|
||||
* Support for JS functions. Create/Edit/Remove/View.
|
||||
* Loading indicators (three dots for now) for Server, Collections, Functions and Users.
|
||||
* Count indicators for Server (number of databases), Collections, Functions and Users.
|
||||
* No need to type "functionName.toString()". You can output source of function
|
||||
by simply typing its name (like in the shell).
|
||||
* Support for RegEx, Code and CodeWScope bson elements. But you still cannot edit
|
||||
documents which contains Code or CodeWScope bson elements.
|
||||
* About dialog added.
|
||||
|
||||
|
||||
0.6.3 / March 5, 2013
|
||||
|
||||
* Script execution can be stopped (this works only for JS code in SpiderMonkey VM) (#23)
|
||||
* Toolbar buttons shown only if needed (#21, #20)
|
||||
* MongoDB Connections window opens when application starts.
|
||||
* Some changes in menu items locations (#25, #26)
|
||||
* View Mode buttons moved to Options menu.
|
||||
* Full Screen and Logs functionality hidden right now (postponed for versions after Robomongo 1.0)
|
||||
|
||||
|
||||
0.6.2 / March 4, 2013
|
||||
|
||||
* "Users" folder now shows list of users.
|
||||
* User can be added (Database -> Add User)
|
||||
* User can be edited (User -> Edit User)
|
||||
* User can be removed (User -> Remove Users)
|
||||
* Users can be refreshed (Users (folder) -> Refresh Users)
|
||||
* List of users can be viewed in the shell (Users (folder) -> View Users)
|
||||
|
||||
|
||||
0.6.1 / March 2, 2013
|
||||
|
||||
* Minor script editor and viewer tweaks
|
||||
|
||||
|
||||
0.6.0 / Feb 28, 2013
|
||||
|
||||
* Database can be created from UI (Server -> Create Database)
|
||||
* Database can be dropped from UI (Database -> Drop Database)
|
||||
* Collection can be created from UI (Database -> Create Collection)
|
||||
* Collection can be dropped from UI (Collection -> Drop Collection)
|
||||
* Collection can be renamed from UI (Collection -> Rename Collection)
|
||||
* All documents can be removed from UI (Collection -> Remove All Documents)
|
||||
* Minor tweaks in naming of context menu items.
|
||||
|
||||
|
||||
0.5.7 / Feb 27, 2013
|
||||
|
||||
* Support for Custom View Modes. First custom view implemented for "db.printCollectionStats()" query. You
|
||||
still can view multiple output results, even if one of them presented in custom mode.
|
||||
* "Show Log" context menu item for servers in Explorer.
|
||||
|
||||
|
||||
0.5.6 / Feb 26, 2013
|
||||
|
||||
* Support for one-line MongoDB commands ("show dbs", "show collection", "use somedb" etc.). This commands can
|
||||
be repearted (this will result in multiple output results) or they can be used together with ordinary JavaScript.
|
||||
The only rule: this command should be the only text on the line, starting from the very beginning of the line.
|
||||
* Refresh of databases and collections via "Refresh" context menu item.
|
||||
* This version of Robomongo is the first version compiled in release mode. It works much more faster and uses lower
|
||||
amount of memory.
|
||||
|
||||
|
||||
0.5.5 / Feb 22, 2013
|
||||
|
||||
* New document can be added in a more user friendly way. There are two ways to do it:
|
||||
1) Right-click on collection in Explorer and select "Insert Document"
|
||||
2) Right-click at any place of Tree View and select "Insert Document"
|
||||
* Better formatting of JSON with correct indention.
|
||||
* Support for ISODate(...) factory function in JSON parser and builder. Date in JSON mode now always
|
||||
displayed as ISODate(...), like in the shell. Document Editor accepts dates in two forms:
|
||||
as "new Date(<millisecs>)" and "ISODate(<iso_8601_date_string>)" (this behaviour identical to MongoDB shell behaviour)
|
||||
* Document editor implemented. Right-click on document in Tree View and select "Edit".
|
||||
* Document viwer implemented. Right-click on document in Tree View and select "View".
|
||||
* You can delete selected document in Tree View. (Right-click and select "Delete")
|
||||
* Validation of JSON in Document Editor/Viewer with error report, highlighting of errors and
|
||||
cursor positioning just where error is.
|
||||
* Fixed problem with "signed" dates (dates before Unix Epoch) (#5)
|
||||
* Fixed problem with UTF-8 (#17)
|
||||
* Fixed problem with loading indicator in Explorer (#18)
|
||||
|
||||
|
||||
0.5.2 / Jan 26, 2013
|
||||
|
||||
In this version autocompletion in Robomongo becomes mostly usable.
|
||||
|
||||
* AutoCompletion box now placed just near text you typed (in correct line and column)
|
||||
* AutoCompletion now works in the middle of the text (not only at the end of line, as before)
|
||||
* Ctrl + Space will trigger autocompletion for symbols under cursor.
|
||||
* If you select function in autocompletion box, their open parenthesis will overwrite existing in the text, if such available.
|
||||
|
||||
|
||||
0.5.1 / Jan 24, 2013
|
||||
|
||||
* Several autocompletion tweaks.
|
||||
|
||||
|
||||
0.5.0 / Jan 24, 2013
|
||||
|
||||
* AutoCompletion. First version.
|
||||
* Progress indicator for shells.
|
||||
* Shell result panels now have equal size, if this is possible.
|
||||
* Code cleanuped a bit.
|
||||
|
||||
|
||||
0.4.6 / Jan 11, 2013
|
||||
|
||||
* Tooltip for collections with count and size.
|
||||
|
||||
|
||||
0.4.5 / Jan 8, 2013
|
||||
|
||||
* WARNING: configuration file schema changed. Some properties will be
|
||||
empty in Connection Settings Dialog. Please fill them again.
|
||||
|
||||
* Connection test (diagnostic) implemented.
|
||||
* Indicators in the shell: current server, database and collection (if available)
|
||||
This indicators are "real" - they respect your actual query.
|
||||
* Execution time measurement. Displayed for each individual output result.
|
||||
* Paging for each output result with respect to filtering, ordering, fields,
|
||||
limit, skip etc. of actual text query (pilot version).
|
||||
* Connection cloning support in Connections Dialog.
|
||||
* Databases and collections now displayed in sorted order.
|
||||
* Batch size extended to 50 documents.
|
||||
* New shape of Shells.
|
||||
* New shape of Connection Settings Dialog
|
||||
* New shape of Connections Dialog.
|
||||
|
||||
|
||||
0.4.0 / Dec 26, 2012
|
||||
|
||||
* No more "type 'it' for more results" when we have more than 20 objects in collection.
|
||||
* Two global modes added - text and tree modes. Switch between them using F3 and F4.
|
||||
* Two local modes added - text and tree modes. Switch between them using small
|
||||
icons on Output panels for each resultset.
|
||||
* Improved performance of json creation (from list of documents).
|
||||
* Tooltips for tool buttons added.
|
||||
* Maximization of output panel implemented (via small icon at the top right of output panel)
|
||||
Click second time to restore back.
|
||||
* Fix for not working Ctrl-O key shortcut (that opens Connections menu).
|
||||
|
||||
|
||||
0.3.5 / Dec 25, 2012
|
||||
|
||||
* Context menu for server, database and collection.
|
||||
* Tab management (Ctrl+Tab, Ctrl+Shift+Tab, Ctrl+T, Ctrl+F4)
|
||||
* Context menu for tab
|
||||
* Submenu for Connect button with connections.
|
||||
* Hotkeys for first 9 connections (Alt+1, ..., Alt+9)
|
||||
* Connections reordering via drag'n'drop in Connections dialog.
|
||||
* Correct focus placement when opening new connection and switching tabs.
|
||||
* Bonus: F12 - opens connections menu from any place.
|
||||
* Memory leaks fix.
|
||||
+38
-261
@@ -1,269 +1,46 @@
|
||||
CMAKE_MINIMUM_REQUIRED(VERSION 2.8.0)
|
||||
#CMAKE_POLICY(SET CMP0020 NEW)
|
||||
#################### Project Settings ####################
|
||||
SET(PROJECT_NAME "Robomongo" CACHE STRING "Project Name")
|
||||
SET(PROJECT_NAME_TITLE ${PROJECT_NAME})
|
||||
SET(PROJECT_DOMAIN "www.robomongo.org" CACHE STRING "Internet domain name for ${PROJECT_NAME}")
|
||||
SET(PROJECT_COMPANYNAME "Paralect" CACHE STRING "Company name for ${PROJECT_NAME}")
|
||||
SET(PROJECT_COPYRIGHT "Copyright (C) 2013 ${PROJECT_COMPANYNAME} All Rights Reserved.")
|
||||
SET(PROJECT_COMPANYNAME_DOMAIN "www.paralect.com" CACHE STRING "Internet domain name for ${PROJECT_NAME}")
|
||||
SET(PROJECT_GITHUB_FORK "www.github.com/paralect/robomongo" CACHE STRING "Git fork of ${PROJECT_NAME}")
|
||||
SET(PROJECT_GITHUB_ISSUES "www.github.com/paralect/robomongo/issues" CACHE STRING "Git issue link for ${PROJECT_NAME}")
|
||||
##########################################################
|
||||
STRING(TOLOWER ${PROJECT_NAME} PROJECT_NAME_LOWERCASE)
|
||||
SET(MAJOR "0")
|
||||
SET(MINOR "8")
|
||||
SET(PATCH "3")
|
||||
SET(BUILD "")
|
||||
SET(SHORT_VERSION ${MAJOR}.${MINOR}.${PATCH} CACHE STRING "${PROJECT_NAME} short version")
|
||||
SET(PROJECT_VERSION "${SHORT_VERSION}${BUILD}" CACHE STRING "${PROJECT_NAME} version")
|
||||
IF(APPLE AND CMAKE_OSX_SYSROOT)
|
||||
STRING(REGEX REPLACE ".*MacOSX([0-9]+)\\.([0-9]+).*$" "\\1" DARWIN_MAJOR_SDK_VERSION "${CMAKE_OSX_SYSROOT}")
|
||||
STRING(REGEX REPLACE ".*MacOSX([0-9]+)\\.([0-9]+).*$" "\\2" DARWIN_MINOR_SDK_VERSION "${CMAKE_OSX_SYSROOT}")
|
||||
IF(EXISTS "${CMAKE_OSX_SYSROOT}")
|
||||
SET(MACOSX_DEPLOYMENT_TARGET ${DARWIN_MAJOR_SDK_VERSION}.${DARWIN_MINOR_SDK_VERSION})
|
||||
SET(CMAKE_CXX_FLAGS "--sysroot ${CMAKE_OSX_SYSROOT} ${CMAKE_CXX_FLAGS}")
|
||||
MESSAGE("Setting MACOSX_DEPLOYMENT_TARGET to '${MACOSX_DEPLOYMENT_TARGET}'.")
|
||||
ENDIF()
|
||||
ELSEIF(UNIX AND NOT APPLE)
|
||||
SET(PROJECT_NAME ${PROJECT_NAME_LOWERCASE})
|
||||
ENDIF()
|
||||
#############################################################
|
||||
# Configure project
|
||||
PROJECT(${PROJECT_NAME})
|
||||
########################## Options #########################
|
||||
OPTION(GENERATE_TRANSLATIONS "Generate ts-files for ${PROJECT_NAME}" OFF)
|
||||
IF(WIN32)
|
||||
OPTION(MANIFEST_ENABLE "Enable Manifest" ON)
|
||||
ENDIF(WIN32)
|
||||
OPTION(BOOST_ENABLED "Enable boost system support" OFF)
|
||||
OPTION(BUILD_PCRECPP_LIBRARY "Build pcrecpp library from sources" ON)
|
||||
OPTION(QT_ENABLED "Enable Qt support" ON)
|
||||
OPTION(CPACK_SUPPORT "Enable package support" ON)
|
||||
OPTION(UNICODE_ENABLE "Support unicode" OFF)
|
||||
OPTION(DEVELOPER_DYNAMIC_RUNTIME "Build with dynamic C++ runtime" ON)
|
||||
OPTION(DEVELOPER_FEATURES "Use some debug tricks for developers" OFF)
|
||||
OPTION(DEVELOPER_ENABLE_TESTS "Enable tests for ${PROJECT_NAME_TITLE} project" ON)
|
||||
cmake_minimum_required(VERSION 3.0.0)
|
||||
project(Robomongo)
|
||||
|
||||
IF(MSVC)
|
||||
IF(CMAKE_CL_64)
|
||||
OPTION(BUILD_64X "Build 64bit project" ON)
|
||||
ELSE()
|
||||
OPTION(BUILD_64X "Build 64bit project" OFF)
|
||||
ENDIF()
|
||||
ELSE()
|
||||
IF("${OS_ARC}" STREQUAL "64")
|
||||
OPTION(BUILD_64X "Build 64bit project" ON)
|
||||
ELSEIF("${OS_ARC}" STREQUAL "32")
|
||||
OPTION(BUILD_64X "Build 64bit project" OFF)
|
||||
ELSE()
|
||||
IF(CMAKE_SIZEOF_VOID_P MATCHES 8)
|
||||
OPTION(BUILD_64X "Build 64bit project" ON)
|
||||
ELSE(CMAKE_SIZEOF_VOID_P MATCHES 8)
|
||||
OPTION(BUILD_64X "Build 64bit project" OFF)
|
||||
ENDIF(CMAKE_SIZEOF_VOID_P MATCHES 8)
|
||||
ENDIF()
|
||||
ENDIF()
|
||||
# Where to look first for CMake modules, before "${CMAKE_ROOT}/Modules" is checked
|
||||
list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_LIST_DIR}/cmake")
|
||||
|
||||
IF(CMAKE_COMPILER_IS_GNUCXX OR "${CMAKE_CXX_COMPILER_ID}" STREQUAL "Clang")
|
||||
IF (NOT CMAKE_BUILD_TYPE)
|
||||
SET(CMAKE_BUILD_TYPE DEBUG)
|
||||
ENDIF()
|
||||
IF(CMAKE_COMPILER_IS_GNUCXX AND NOT MINGW)
|
||||
SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fPIC")
|
||||
ENDIF()
|
||||
ENDIF()
|
||||
# Project version
|
||||
set(PROJECT_VERSION_MAJOR "0")
|
||||
set(PROJECT_VERSION_MINOR "9")
|
||||
set(PROJECT_VERSION_PATCH "0")
|
||||
set(PROJECT_VERSION_BUILD "-RC7")
|
||||
set(PROJECT_VERSION "${PROJECT_VERSION_MAJOR}.${PROJECT_VERSION_MINOR}.${PROJECT_VERSION_PATCH}${PROJECT_VERSION_BUILD}")
|
||||
|
||||
INCLUDE(cmake/config.cmake)
|
||||
# Modules
|
||||
include(RobomongoPrintUtils)
|
||||
include(RobomongoCMakeDefaults)
|
||||
include(RobomongoDefaults)
|
||||
include(RobomongoCommon)
|
||||
include(RobomongoTrashSymbols)
|
||||
include(RobomongoTargetArch)
|
||||
include(RobomongoInstallQt)
|
||||
include(RobomongoPackage)
|
||||
|
||||
DEFINE_DEFAULT_DEFINITIONS()
|
||||
# Search for dependencies
|
||||
find_package(Threading REQUIRED) # Wrapper arround CMake "Threads" module
|
||||
find_package(Qt5Core REQUIRED)
|
||||
find_package(Qt5Gui REQUIRED)
|
||||
find_package(Qt5Widgets REQUIRED)
|
||||
find_package(Qt5PrintSupport REQUIRED)
|
||||
find_package(MongoDB REQUIRED)
|
||||
|
||||
# Search libraries
|
||||
# use Qt
|
||||
DETECT_QT()
|
||||
##################### Libraries search ###################
|
||||
IF(DEVELOPER_QT5)
|
||||
SET(QT_COMPONENTS_TO_USE Qt5Core Qt5Gui Qt5Widgets)
|
||||
IF(UNIX AND NOT APPLE)
|
||||
SET(QT_COMPONENTS_TO_USE ${QT_COMPONENTS_TO_USE} Qt5DBus) #for libqxcb
|
||||
ENDIF(UNIX AND NOT APPLE)
|
||||
ELSE()
|
||||
SET(QT_COMPONENTS_TO_USE QtCore QtGui)
|
||||
ENDIF()
|
||||
INTEGRATE_QT(${QT_COMPONENTS_TO_USE})
|
||||
##########################################################
|
||||
if (SYSTEM_MACOSX)
|
||||
find_package(Qt5MacExtras REQUIRED)
|
||||
endif()
|
||||
|
||||
IF(BUILD_64X)
|
||||
SET_PROPERTY(GLOBAL PROPERTY FIND_LIBRARY_USE_LIB64_PATHS 1)
|
||||
IF(CMAKE_COMPILER_IS_GNUCXX)
|
||||
SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -m64")
|
||||
SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -m64")
|
||||
SET(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -m64")
|
||||
SET(CMAKE_SHARED_LINKER_FLAGS "${CMAKE_SHARED_LINKER_FLAGS} -m64")
|
||||
SET(CMAKE_MODULE_LINKER_FLAGS "${CMAKE_MODULE_LINKER_FLAGS} -m64")
|
||||
ELSEIF(MSVC)
|
||||
SET(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} /machine:x64")
|
||||
SET(CMAKE_SHARED_LINKER_FLAGS "${CMAKE_SHARED_LINKER_FLAGS} /machine:x64")
|
||||
SET(CMAKE_MODULE_LINKER_FLAGS "${CMAKE_MODULE_LINKER_FLAGS} /machine:x64")
|
||||
ENDIF()
|
||||
IF(APPLE)
|
||||
SET(CMAKE_OSX_ARCHITECTURES x86_64)
|
||||
ENDIF()
|
||||
SET(ARCH_TEXT 64)
|
||||
SET(ARCH_TEXT_PACKAGE x86_64)#amd64
|
||||
ELSE()
|
||||
SET_PROPERTY(GLOBAL PROPERTY FIND_LIBRARY_USE_LIB64_PATHS 0)
|
||||
IF(CMAKE_COMPILER_IS_GNUCXX)
|
||||
SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -m32")
|
||||
SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -m32")
|
||||
SET(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -m32")
|
||||
SET(CMAKE_SHARED_LINKER_FLAGS "${CMAKE_SHARED_LINKER_FLAGS} -m32")
|
||||
SET(CMAKE_MODULE_LINKER_FLAGS "${CMAKE_MODULE_LINKER_FLAGS} -m32")
|
||||
ELSEIF(MSVC)
|
||||
SET(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} /machine:x86")
|
||||
SET(CMAKE_SHARED_LINKER_FLAGS "${CMAKE_SHARED_LINKER_FLAGS} /machine:x86")
|
||||
SET(CMAKE_MODULE_LINKER_FLAGS "${CMAKE_MODULE_LINKER_FLAGS} /machine:x86")
|
||||
ENDIF()
|
||||
IF(APPLE)
|
||||
SET(CMAKE_OSX_ARCHITECTURES i386)
|
||||
#-DCMAKE_OSX_ARCHITECTURES= ;i386
|
||||
ENDIF()
|
||||
SET(ARCH_TEXT 32)
|
||||
SET(ARCH_TEXT_PACKAGE i386)
|
||||
ENDIF()
|
||||
# Projects
|
||||
add_subdirectory(src/third-party/openssl)
|
||||
add_subdirectory(src/third-party/libssh2)
|
||||
add_subdirectory(src/robomongo/ssh)
|
||||
add_subdirectory(src/third-party/qjson)
|
||||
add_subdirectory(src/third-party/qscintilla)
|
||||
add_subdirectory(src/robomongo)
|
||||
|
||||
##################################DEFAULT VALUES##########################################
|
||||
IF(NOT CMAKE_INSTALL_PREFIX})
|
||||
SET(CMAKE_INSTALL_PREFIX "${CMAKE_BINARY_DIR}/install")
|
||||
ENDIF()
|
||||
# Show configuration summary
|
||||
include(RobomongoConfigurationSummary)
|
||||
|
||||
IF("${PROJECT_SOURCE_DIR}" STREQUAL "${PROJECT_BINARY_DIR}")
|
||||
MESSAGE(SEND_ERROR "In-source builds are not allowed.")
|
||||
ENDIF("${PROJECT_SOURCE_DIR}" STREQUAL "${PROJECT_BINARY_DIR}")
|
||||
|
||||
############################################################################
|
||||
IF(WIN32)
|
||||
SET(RESOURCE_OS "${CMAKE_CURRENT_BINARY_DIR}/${PROJECT_NAME}/win.rc")
|
||||
SET(RESOURCE_OS_IN "${CMAKE_SOURCE_DIR}/install/windows/winres.rc.in")
|
||||
SET(ICON_FILE "${CMAKE_SOURCE_DIR}/src/robomongo/gui/resources/robo.ico")
|
||||
SET(LIB_INSTALL_DESTINATION .)
|
||||
SET(TARGET_INSTALL_DESTINATION .)
|
||||
ELSEIF(APPLE)
|
||||
SET(RESOURCE_OS "${CMAKE_CURRENT_BINARY_DIR}/${PROJECT_NAME}/robomongo.desktop")
|
||||
SET(RESOURCE_OS_IN "${CMAKE_SOURCE_DIR}/install/robomongo.desktop.in" )
|
||||
SET(ICON_FILE "${CMAKE_SOURCE_DIR}/install/osx/Robomongo.icns")
|
||||
SET(LIB_INSTALL_DESTINATION .)
|
||||
SET(TARGET_INSTALL_DESTINATION .)
|
||||
ELSEIF(UNIX)
|
||||
SET(RESOURCE_OS "${CMAKE_CURRENT_BINARY_DIR}/${PROJECT_NAME}/${PROJECT_NAME}.desktop")
|
||||
SET(RESOURCE_OS_IN "${CMAKE_SOURCE_DIR}/install/robomongo.desktop.in")
|
||||
SET(ICON_FILE "${CMAKE_SOURCE_DIR}/install/linux/robomongo.png")
|
||||
SET(LIB_INSTALL_DESTINATION lib)
|
||||
SET(TARGET_INSTALL_DESTINATION bin)
|
||||
ENDIF()
|
||||
# project sources
|
||||
SET_PROPERTY( GLOBAL PROPERTY USE_FOLDERS ON)
|
||||
|
||||
ADD_SUBDIRECTORY(src)
|
||||
IF(CPACK_SUPPORT)
|
||||
SET(CPACK_PACKAGE_DESCRIPTION "Shell-centric cross-platform MongoDB management tool.")
|
||||
SET(CPACK_PACKAGE_DESCRIPTION_SUMMARY "${PROJECT_NAME_TITLE} shell-centric cross-platform MongoDB management tool.")#CPACK_DEBIAN_PACKAGE_DESCRIPTION CPACK_RPM_PACKAGE_SUMMARY
|
||||
SET(CPACK_PACKAGE_DESCRIPTION_FILE "${CMAKE_CURRENT_SOURCE_DIR}/LICENSE")#CPACK_RPM_PACKAGE_DESCRIPTION
|
||||
SET(CPACK_RESOURCE_FILE_LICENSE "${CMAKE_CURRENT_SOURCE_DIR}/LICENSE")
|
||||
SET(CPACK_RESOURCE_FILE_README "${CMAKE_CURRENT_SOURCE_DIR}/README.md")
|
||||
SET(CPACK_RESOURCE_FILE_WELCOME "${CMAKE_CURRENT_SOURCE_DIR}/README.md")
|
||||
|
||||
SET(CPACK_PACKAGE_VENDOR ${PROJECT_COMPANYNAME})#CPACK_RPM_PACKAGE_VENDOR
|
||||
SET(CPACK_PACKAGE_CONTACT "Dmitry Schetnikovich <dima@paralect.com>")#CPACK_DEBIAN_PACKAGE_MAINTAINER
|
||||
|
||||
SET(CPACK_PACKAGE_VERSION_MAJOR ${MAJOR})
|
||||
SET(CPACK_PACKAGE_VERSION_MINOR ${MINOR})
|
||||
SET(CPACK_PACKAGE_VERSION_PATCH ${SHORT_VERSION})
|
||||
IF(BUILD)
|
||||
STRING(REGEX REPLACE " " "" BUILD_ESCAPE ${BUILD})
|
||||
SET(CPACK_PACKAGE_VERSION_PATCH "${CPACK_PACKAGE_VERSION_PATCH}-${BUILD_ESCAPE}")
|
||||
ENDIF(BUILD)
|
||||
SET(CPACK_PACKAGE_VERSION ${CPACK_PACKAGE_VERSION_PATCH})#CPACK_DEBIAN_PACKAGE_VERSION CPACK_RPM_PACKAGE_VERSION
|
||||
SET(CPACK_PACKAGE_NAME ${PROJECT_NAME})#CPACK_DEBIAN_PACKAGE_NAME CPACK_RPM_PACKAGE_NAME
|
||||
SET(CPACK_PACKAGE_FILE_NAME "${CPACK_PACKAGE_NAME}-${CPACK_PACKAGE_VERSION}-${ARCH_TEXT_PACKAGE}")#out package name
|
||||
SET(CPACK_SOURCE_PACKAGE_FILE_NAME "${CPACK_PACKAGE_FILE_NAME}")
|
||||
SET(CPACK_PACKAGE_INSTALL_DIRECTORY ${PROJECT_NAME})
|
||||
SET(CPACK_PACKAGE_EXECUTABLES "${PROJECT_NAME_TITLE};${PROJECT_NAME}")
|
||||
MESSAGE(STATUS "CPACK_PACKAGE_FILE_NAME: ${CPACK_PACKAGE_FILE_NAME}")
|
||||
SET(CPACK_MONOLITHIC_INSTALL ON)
|
||||
|
||||
IF(WIN32)
|
||||
IF(NOT CPACK_GENERATOR)
|
||||
SET(CPACK_GENERATOR NSIS)
|
||||
ENDIF(NOT CPACK_GENERATOR)
|
||||
IF(CPACK_GENERATOR STREQUAL "NSIS")
|
||||
# There is a bug in NSI that does not handle full unix paths properly. Make
|
||||
# sure there is at least one set of four (4) backlasshes.
|
||||
#SET(CPACK_NSIS_MODIFY_PATH ON)
|
||||
SET(CPACK_PACKAGE_ICON "${CMAKE_SOURCE_DIR}/install/windows\\\\nsis-top-logo.bmp")
|
||||
SET(CPACK_NSIS_INSTALLED_ICON_NAME "\\\\${PROJECT_NAME}.exe")
|
||||
SET(CPACK_CREATE_DESKTOP_LINKS "${PROJECT_NAME}.exe")
|
||||
SET(CPACK_NSIS_CREATE_ICONS "CreateShortCut \\\"$SMPROGRAMS\\\\$STARTMENU_FOLDER\\\\${PROJECT_NAME}.lnk\\\" \\\"$INSTDIR\\\\${PROJECT_NAME}.exe\\\"")
|
||||
SET(CPACK_NSIS_CREATE_ICONS_EXTRA "CreateShortCut \\\"$DESKTOP\\\\${PROJECT_NAME}.lnk\\\" \\\"$INSTDIR\\\\${PROJECT_NAME}.exe\\\"")
|
||||
SET(CPACK_NSIS_DELETE_ICONS_EXTRA "Delete \\\"$DESKTOP\\\\${PROJECT_NAME}.lnk\\\"")
|
||||
SET(CPACK_NSIS_DISPLAY_NAME "${CPACK_PACKAGE_INSTALL_DIRECTORY}")
|
||||
SET(CPACK_NSIS_HELP_LINK "http:\\\\\\\\${PROJECT_COMPANYNAME_DOMAIN}")
|
||||
SET(CPACK_NSIS_URL_INFO_ABOUT "http:\\\\\\\\${PROJECT_DOMAIN}")
|
||||
SET(SIDEBAR_IMAGE ${CMAKE_SOURCE_DIR}/install/windows\\\\database.bmp)
|
||||
SET(CPACK_NSIS_INSTALLER_MUI_ICON_CODE "!define MUI_WELCOMEFINISHPAGE_BITMAP \\\"${SIDEBAR_IMAGE}\\\"")
|
||||
SET(CPACK_NSIS_CONTACT "me@my-personal-home-page.com")
|
||||
SET(CPACK_NSIS_MUI_FINISHPAGE_RUN "..\\\\${PROJECT_NAME}.exe")
|
||||
ENDIF(CPACK_GENERATOR STREQUAL "NSIS")
|
||||
ELSEIF(APPLE)
|
||||
IF(NOT CPACK_GENERATOR)
|
||||
SET(CPACK_GENERATOR DragNDrop)
|
||||
ENDIF(NOT CPACK_GENERATOR)
|
||||
#SET(CPACK_OSX_PACKAGE_VERSION "10.5")
|
||||
ELSEIF(UNIX)
|
||||
SET(CPACK_STRIP_FILES ON)
|
||||
#SET(UBUNTU_LP_BUG 300472)
|
||||
#SET(CPACK_STRIP_FILES "bin/${PROJECT_NAME}")
|
||||
#SET(CPACK_SOURCE_STRIP_FILES "")
|
||||
IF(NOT CPACK_GENERATOR)
|
||||
SET(CPACK_GENERATOR DEB)
|
||||
ENDIF(NOT CPACK_GENERATOR)
|
||||
IF(CPACK_GENERATOR STREQUAL "RPM" OR CPACK_GENERATOR STREQUAL "DEB")
|
||||
SET(CPACK_PACKAGING_INSTALL_PREFIX "/opt/${PROJECT_NAME}")
|
||||
ENDIF(CPACK_GENERATOR STREQUAL "RPM" OR CPACK_GENERATOR STREQUAL "DEB")
|
||||
CONFIGURE_FILE("${CMAKE_CURRENT_SOURCE_DIR}/install/linux/postinst.in" "${CMAKE_CURRENT_BINARY_DIR}/${PROJECT_NAME}/scripts/postinst" @ONLY IMMEDIATE)
|
||||
FILE(COPY ${CMAKE_CURRENT_BINARY_DIR}/${PROJECT_NAME}/scripts/postinst DESTINATION ${CMAKE_CURRENT_BINARY_DIR}/${PROJECT_NAME}
|
||||
FILE_PERMISSIONS OWNER_READ OWNER_WRITE OWNER_EXECUTE GROUP_READ GROUP_EXECUTE WORLD_READ WORLD_EXECUTE)
|
||||
CONFIGURE_FILE("${CMAKE_CURRENT_SOURCE_DIR}/install/linux/prerm.in" "${CMAKE_CURRENT_BINARY_DIR}/${PROJECT_NAME}/scripts/prerm" @ONLY IMMEDIATE)
|
||||
FILE(COPY ${CMAKE_CURRENT_BINARY_DIR}/${PROJECT_NAME}/scripts/prerm DESTINATION ${CMAKE_CURRENT_BINARY_DIR}/${PROJECT_NAME}
|
||||
FILE_PERMISSIONS OWNER_READ OWNER_WRITE OWNER_EXECUTE GROUP_READ GROUP_EXECUTE WORLD_READ WORLD_EXECUTE)
|
||||
IF(CPACK_GENERATOR STREQUAL "RPM")
|
||||
#CPACK_RPM_PACKAGE_ARCHITECTURE CPACK_RPM_PACKAGE_LICENSE CPACK_RPM_PACKAGE_DESCRIPTION CPACK_RPM_SPEC_INSTALL_POST
|
||||
#SET(CPACK_PACKAGE_RELEASE 1)
|
||||
SET(CPACK_RPM_PACKAGE_LICENSE "GPL v3")
|
||||
SET(CPACK_RPM_PACKAGE_AUTOREQPROV "no")
|
||||
SET(CPACK_RPM_PACKAGE_REQUIRES "libc.so.6 >= 2.12, libstdc++.so.6 >= 6.0.13")
|
||||
SET(CPACK_RPM_PACKAGE_RELEASE 1)
|
||||
SET(CPACK_RPM_PACKAGE_GROUP "Development/Libraries/${PROJECT_COMPANYNAME}")
|
||||
SET(CPACK_RPM_PACKAGE_ARCHITECTURE ${ARCH_TEXT_PACKAGE})
|
||||
SET(CPACK_RPM_PACKAGE_VERSION ${SHORT_VERSION})
|
||||
SET(CPACK_RPM_POST_INSTALL_SCRIPT_FILE "${CMAKE_CURRENT_BINARY_DIR}/${PROJECT_NAME}/postinst")
|
||||
SET(CPACK_RPM_PRE_UNINSTALL_SCRIPT_FILE "${CMAKE_CURRENT_BINARY_DIR}/${PROJECT_NAME}/prerm")
|
||||
ELSEIF(CPACK_GENERATOR STREQUAL "DEB")
|
||||
CONFIGURE_FILE("${CMAKE_CURRENT_SOURCE_DIR}/install/linux/fixup_deb.sh.in" "${CMAKE_CURRENT_BINARY_DIR}/fixup_deb.sh" @ONLY IMMEDIATE)
|
||||
IF(ARCH_TEXT_PACKAGE STREQUAL x86_64)
|
||||
SET(ARCH_TEXT_PACKAGE amd64)
|
||||
ENDIF()
|
||||
#SET(CPACK_DEBIAN_PACKAGE_SHLIBDEPS ON)
|
||||
#CPACK_DEBIAN_PACKAGE_HOMEPAGE The URL of the web site for this package
|
||||
SET(CPACK_DEBIAN_PACKAGE_DEBUG ON)
|
||||
SET(CPACK_DEBIAN_PACKAGE_DEPENDS "libc6 (>= 2.12), libstdc++6 (>= 4.4.7)")
|
||||
SET(CPACK_DEBIAN_PACKAGE_PRIORITY "optional")
|
||||
SET(CPACK_DEBIAN_PACKAGE_SECTION "database")#input our section
|
||||
SET(CPACK_DEBIAN_PACKAGE_RECOMMENDS "Unknown")
|
||||
SET(CPACK_DEBIAN_PACKAGE_SUGGESTS "Unknown")
|
||||
SET(CPACK_DEBIAN_PACKAGE_ARCHITECTURE ${ARCH_TEXT_PACKAGE})#i386
|
||||
SET(CPACK_DEBIAN_PACKAGE_CONTROL_EXTRA "${CMAKE_CURRENT_BINARY_DIR}/${PROJECT_NAME}/postinst;${CMAKE_CURRENT_BINARY_DIR}/${PROJECT_NAME}/prerm")
|
||||
ENDIF(CPACK_GENERATOR STREQUAL "RPM")
|
||||
ENDIF(WIN32)
|
||||
INCLUDE(CPack)
|
||||
ENDIF(CPACK_SUPPORT)
|
||||
|
||||
@@ -0,0 +1,3 @@
|
||||
Robomongo is a shell-centric cross-platform open source MongoDB management
|
||||
tool (i.e. Admin GUI). Robomongo embeds the same JavaScript engine that
|
||||
powers MongoDB's mongo shell.
|
||||
@@ -1,81 +1,96 @@
|
||||
About Robomongo
|
||||
===============
|
||||
|
||||
Robomongo — is a shell-centric crossplatform MongoDB management tool. <br />
|
||||
Visit our site: [www.robomongo.org](http://www.robomongo.org)
|
||||
[Robomongo](http://www.robomongo.org) is a shell-centric cross-platform MongoDB management tool. Unlike most other MongoDB admin UI tools, Robomongo embeds the actual `mongo` shell in a tabbed interface with access to a shell command line as well as GUI interaction.
|
||||
|
||||
Starting from version 0.9, Robomongo is compatibile with MongoDB 3.x (including SCRAM-SHA-1 auth and support for WiredTiger storage engine). Robomongo 0.9 embeds the **MongoDB 3.2** shell.
|
||||
|
||||
Robomongo 0.8.x embeds the **MongoDB 2.4.0** shell.
|
||||
|
||||
|
||||
Download
|
||||
========
|
||||
|
||||
You can download compiled version (for Mac OS X, Windows and Linux) from our site:<br />
|
||||
[www.robomongo.org](http://www.robomongo.org)
|
||||
You can download tested install packages for OS X, Windows, and Linux from our site: [www.robomongo.org](http://www.robomongo.org).
|
||||
|
||||
<!-- https://www.dropbox.com/sh/u0s0i8e4m0a8i9f/oxtqKHPUZ8 -->
|
||||
The latest stable release is currently **Robomongo 0.8.5**.
|
||||
|
||||
Contribute
|
||||
==========
|
||||
Contributions are always welcome! Just try to follow our coding style: [Robomongo Coding Style](https://github.com/paralect/robomongo/wiki/Robomongo-Coding-Style)
|
||||
Support
|
||||
=======
|
||||
|
||||
Robomongo is an open source project driven by volunteers. We'll try to get to your questions as soon as we can, but please be patient :).
|
||||
|
||||
You can:
|
||||
|
||||
- [Create a new issue in the Github issue queue](https://github.com/paralect/robomongo/issues)
|
||||
|
||||
- [Join developer discussion on Gitter](https://gitter.im/paralect/robomongo) [](https://gitter.im/paralect/robomongo?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)
|
||||
|
||||
Build
|
||||
========
|
||||
=====
|
||||
|
||||
Build documentation: [Build Robomongo](https://github.com/paralect/robomongo/wiki/Build-Robomongo)
|
||||
The wiki contains prerequisites and instructions to [Build Robomongo](https://github.com/paralect/robomongo/wiki/Build-Robomongo).
|
||||
|
||||
<!--
|
||||
If you want to compile from source yourself, you should be able to do so cleanly from a [release branch](https://github.com/paralect/robomongo/releases).
|
||||
|
||||
Outdated build documentation:<br />
|
||||
[Building Robomongo and Dependencies (for Linux and Mac OS X)]
|
||||
(https://github.com/paralect/robomongo/wiki/Building-Robomongo-and-Dependencies-(for-Linux-and-Mac-OS-X\))
|
||||
What's Planned for the Next Release?
|
||||
====================================
|
||||
|
||||
We are currently working toward a [0.9.0 release milestone](https://github.com/paralect/robomongo/milestones/Robomongo%200.9.0)
|
||||
with some major features targeted including compatibility with MongoDB 3.0
|
||||
(updated shell, SCRAM-SHA-1 auth, support for WiredTiger storage engine)
|
||||
and full support for replica sets.
|
||||
|
||||
Contribute!
|
||||
===========
|
||||
|
||||
### Vote for Features
|
||||
|
||||
Please view our [Magic Backlog](http://app.robomongo.org/backlog) to see features prioritised by donation. The small amount of donations we currently receive are put toward hosting costs.
|
||||
|
||||
### Suggest Features
|
||||
|
||||
New feature suggestions or UI improvements are always welcome.
|
||||
|
||||
This project is powered by open source volunteers, so we have a limited amount of development resource to address all requests. We will certainly make best efforts to progress (particularly for those with strong community upvotes).
|
||||
|
||||
### Code Contributions
|
||||
|
||||
Code contributions are always welcome! Just try to follow our coding style: [Robomongo Coding Style](https://github.com/paralect/robomongo/wiki/Robomongo-Coding-Style).
|
||||
|
||||
If you plan to contribute, please create a Github issue (or comment on the relevant existing issue) so we can help coordinate with upcoming release plans.
|
||||
|
||||
For a general workflow, see Github's guide to [Fork a Repo](https://help.github.com/articles/fork-a-repo/).
|
||||
|
||||
Pull requests (PRs) should generally be for discrete issues (i.e. one issue per PR please) and be clean to merge against the current master branch. It would also be helpful if you can confirm what testing has been done (specific O/S targets and MongoDB versions if applicable).
|
||||
|
||||
A usual naming approach for feature branches is `issue-###`. Include the issue number in your commit message / pull request description to link the PR to the original issue.
|
||||
|
||||
For example:
|
||||
```#248: updated QScintilla to 2.4.8 for retina display support".```
|
||||
|
||||
### Design
|
||||
|
||||
There are some cosmetic issues we could use help with (designing images or UI). They are marked in the issue queue with a [`Cosmetic`](https://github.com/paralect/robomongo/labels/cosmetic) label. If you see an open issue that you'd like to contribute to, please feel free to volunteer by commenting on it.
|
||||
|
||||
### Testing
|
||||
|
||||
There are a number of issues we could use help with reproducing. They are marked in the issue queue with a [`Needs Repro`](https://github.com/paralect/robomongo/labels/needs%20repro) label. If you see an open issue that doesn't appear to be reproducible yet, please feel free to test and comment with your findings.
|
||||
|
||||
|
||||
License
|
||||
=======
|
||||
|
||||
Copyright (C) 2013-2015 [Paralect, Inc](http://www.paralect.com)
|
||||
|
||||
You are lucky enough, if prebuild libraries (that are in `libs` folder) are
|
||||
already available and match your OS/Compiler. For most of you it's not —
|
||||
you need to build Robomongo dependencies, before building Robomongo itself.
|
||||
This program is free software: you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License version 3 as
|
||||
published by the Free Software Foundation.
|
||||
|
||||
Here is a detailed instructions on building Robomongo dependencies for Linux and/or Mac OS X:<br />
|
||||
[Building Robomongo and Dependencies (for Linux and Mac OS X)]
|
||||
(https://github.com/paralect/robomongo/wiki/Building-Robomongo-and-Dependencies-(for-Linux-and-Mac-OS-X\))
|
||||
This program 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.
|
||||
|
||||
|
||||
|
||||
Windows
|
||||
-------
|
||||
|
||||
The following steps assume that all dependencies already compiled.
|
||||
|
||||
Prerequisites:
|
||||
|
||||
* Qt should be compiled with VC2010. Tested with Qt 4.8
|
||||
* Your PATH variable should have Qt bin folder
|
||||
* Visual Studio 2010 should be installed and VC should be in this location: %ProgramFiles%\Microsoft Visual Studio 10.0\VC. Otherwise you need to modify VISUALC_PATH in build script.
|
||||
|
||||
Compiling:
|
||||
|
||||
> cd build
|
||||
> build.bat
|
||||
|
||||
Executable will be placed to: target/debug/app/out
|
||||
|
||||
|
||||
|
||||
Linux and OS X
|
||||
---------------
|
||||
|
||||
The following steps assume that all dependencies already compiled.
|
||||
|
||||
Prerequisites:
|
||||
|
||||
* Qt should be installed. Tested with Qt 4.8
|
||||
* Your PATH variable should have Qt bin folder
|
||||
|
||||
Compiling:
|
||||
|
||||
$ cd build
|
||||
$ chmod u+x build.sh
|
||||
$ ./build.sh
|
||||
|
||||
Executable will be placed to: target/debug/app/out
|
||||
|
||||
-->
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
@@ -0,0 +1,20 @@
|
||||
Bash fronted for CMake
|
||||
======================
|
||||
|
||||
If you want to use this scripts, you need to set single environment variable:
|
||||
|
||||
export ROBOMONGO_CMAKE_PREFIX_PATH="/path/to/qt-5/5.5/gcc_64;/path/to/robomongo-shell"
|
||||
|
||||
Build Robomongo:
|
||||
|
||||
$ bin/configure
|
||||
$ bin/build
|
||||
|
||||
Install Robomongo:
|
||||
|
||||
$ bin/install
|
||||
|
||||
Pack Robomongo:
|
||||
|
||||
$ bin/pack
|
||||
|
||||
@@ -0,0 +1,8 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
BIN_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )" # Get directory of this file
|
||||
PROJECT_DIR=$(dirname $BIN_DIR) # Get root directory of project
|
||||
source $BIN_DIR/common/setup $1
|
||||
|
||||
cd $BUILD_DIR
|
||||
cmake --build . "${@:2}" -- -j8
|
||||
@@ -0,0 +1,15 @@
|
||||
@echo off
|
||||
setlocal enableextensions enabledelayedexpansion
|
||||
|
||||
rem Path to bin and project folder
|
||||
set BIN_DIR_WITH_BACKSLASH=%~dp0%
|
||||
set BIN_DIR=%BIN_DIR_WITH_BACKSLASH:~0,-1%
|
||||
set PROJECT_DIR=%BIN_DIR%\..
|
||||
|
||||
rem Run common setup code
|
||||
call "%BIN_DIR%\common\setup.bat" %*
|
||||
if %ERRORLEVEL% neq 0 (exit /b 1)
|
||||
|
||||
rem Run build
|
||||
cd "%BUILD_DIR%"
|
||||
cmake --build . --config %BUILD_TYPE%
|
||||
@@ -0,0 +1,7 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
BIN_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )" # Get directory of this file
|
||||
PROJECT_DIR=$(dirname $BIN_DIR) # Get root directory of project
|
||||
source $BIN_DIR/common/setup $1
|
||||
|
||||
cd $VARIANT_DIR && rm -rf $BUILD_DIR_NAME
|
||||
@@ -0,0 +1,15 @@
|
||||
@echo off
|
||||
setlocal enableextensions enabledelayedexpansion
|
||||
|
||||
rem Path to bin and project folder
|
||||
set BIN_DIR_WITH_BACKSLASH=%~dp0%
|
||||
set BIN_DIR=%BIN_DIR_WITH_BACKSLASH:~0,-1%
|
||||
set PROJECT_DIR=%BIN_DIR%\..
|
||||
|
||||
rem Run common setup code
|
||||
call "%BIN_DIR%\common\setup.bat" %*
|
||||
if %ERRORLEVEL% neq 0 (exit /b 1)
|
||||
|
||||
rem Clear build directory
|
||||
cd "%VARIANT_DIR%"
|
||||
rmdir /s /q "%BUILD_DIR_NAME%"
|
||||
Executable
+49
@@ -0,0 +1,49 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
if [ "$1" == "debug" ]; then
|
||||
BUILD_TYPE=Debug
|
||||
else
|
||||
BUILD_TYPE=Release
|
||||
|
||||
# Prepend "release" in front of $@
|
||||
set -- release "$@"
|
||||
fi
|
||||
|
||||
# Build dir name is a lowercase of BUILD_TYPE
|
||||
# i.e. debug
|
||||
BUILD_DIR_NAME="$(echo $BUILD_TYPE | tr '[A-Z]' '[a-z]')"
|
||||
|
||||
# i.e. /path/to/robomongo/build
|
||||
VARIANT_DIR=$PROJECT_DIR/build
|
||||
|
||||
# i.e. /path/to/robomongo/build/debug
|
||||
BUILD_DIR=$VARIANT_DIR/$BUILD_DIR_NAME
|
||||
|
||||
# i.e. /path/to/robomongo/build/debug/install
|
||||
INSTALL_PREFIX=$BUILD_DIR/install
|
||||
|
||||
# i.e. /path/to/robomongo/build/debug/package
|
||||
PACK_PREFIX=$BUILD_DIR/package
|
||||
|
||||
PREFIX_PATH=$ROBOMONGO_CMAKE_PREFIX_PATH
|
||||
|
||||
mkdir -p $BUILD_DIR
|
||||
|
||||
if [ "$(uname -s)" == "Darwin" ]; then
|
||||
# On Mac OS we specify minimal OS version that we support.
|
||||
#
|
||||
# The following environment variable will set "-mmacosx-version-min=10.6" option
|
||||
# for compiler. From documentation to GCC or Clang:
|
||||
#
|
||||
# -mmacosx-version-min=version
|
||||
#
|
||||
# The earliest version of MacOS X that this executable will run on is
|
||||
# version. Typical values of version include 10.1, 10.2, and 10.3.9.
|
||||
#
|
||||
# This value can also be set with the MACOSX_DEPLOYMENT_TARGET environment
|
||||
# variable. If both the command-line option is specified and the
|
||||
# environment variable is set, the command-line option will take precedence.
|
||||
#
|
||||
export MACOSX_DEPLOYMENT_TARGET=10.9
|
||||
fi
|
||||
|
||||
@@ -0,0 +1,48 @@
|
||||
rem Check that ROBOMONGO_CMAKE_PREFIX_PATH is set
|
||||
if not defined ROBOMONGO_CMAKE_PREFIX_PATH (
|
||||
echo Set environment variable ROBOMONGO_CMAKE_PREFIX_PATH in order to use this script
|
||||
echo.
|
||||
echo For example, execute the following command:
|
||||
echo setx ROBOMONGO_CMAKE_PREFIX_PATH "c:\Qt-5\5.5\msvc2013_64;c:\robomongo-shell"
|
||||
echo.
|
||||
echo You also need to reopen your Windows Command Prompt.
|
||||
exit /b 1
|
||||
)
|
||||
|
||||
rem Check for debug build type
|
||||
if %1. == debug. (
|
||||
set BUILD_TYPE=Debug
|
||||
) else (
|
||||
rem If build type wasn't specified - Release mode assumed
|
||||
if %1. ==. (
|
||||
set BUILD_TYPE=Release
|
||||
) else (
|
||||
echo Invalid build type "%1". Supported build types: debug or release.
|
||||
exit /b 1
|
||||
)
|
||||
)
|
||||
|
||||
rem Build dir name (i.e. Release)
|
||||
set BUILD_DIR_NAME=%BUILD_TYPE%
|
||||
|
||||
rem i.e. /path/to/robomongo/build
|
||||
set VARIANT_DIR=%PROJECT_DIR%\build
|
||||
|
||||
rem i.e. /path/to/robomongo/build/debug
|
||||
set BUILD_DIR=%VARIANT_DIR%\%BUILD_DIR_NAME%
|
||||
|
||||
rem i.e. /path/to/robomongo/build/debug/install
|
||||
set INSTALL_PREFIX=%BUILD_DIR%\install
|
||||
|
||||
rem i.e. /path/to/robomongo/build/debug/package
|
||||
set PACK_PREFIX=%BUILD_DIR%/package
|
||||
|
||||
rem Get value from environment variable
|
||||
set PREFIX_PATH=%ROBOMONGO_CMAKE_PREFIX_PATH%
|
||||
|
||||
rem Create BUILD_DIR if it is not exists already
|
||||
if not exist "%BUILD_DIR%" (
|
||||
md "%BUILD_DIR%"
|
||||
)
|
||||
|
||||
|
||||
+8
@@ -0,0 +1,8 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
BIN_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )" # Get directory of this file
|
||||
PROJECT_DIR=$(dirname $BIN_DIR) # Get root directory of project
|
||||
source $BIN_DIR/common/setup $1
|
||||
|
||||
cd $BUILD_DIR
|
||||
cmake -D "CMAKE_PREFIX_PATH=$PREFIX_PATH" -D "CMAKE_BUILD_TYPE=$BUILD_TYPE" -D "CMAKE_INSTALL_PREFIX=$INSTALL_PREFIX" "${@:2}" $PROJECT_DIR
|
||||
@@ -0,0 +1,15 @@
|
||||
@echo off
|
||||
setlocal enableextensions enabledelayedexpansion
|
||||
|
||||
rem Path to bin and project folder
|
||||
set BIN_DIR_WITH_BACKSLASH=%~dp0%
|
||||
set BIN_DIR=%BIN_DIR_WITH_BACKSLASH:~0,-1%
|
||||
set PROJECT_DIR=%BIN_DIR%\..
|
||||
|
||||
rem Run common setup code
|
||||
call "%BIN_DIR%\common\setup.bat" %*
|
||||
if %ERRORLEVEL% neq 0 (exit /b 1)
|
||||
|
||||
rem Run CMake configuration step
|
||||
cd "%BUILD_DIR%"
|
||||
cmake -G "Visual Studio 12 2013 Win64" -D "CMAKE_PREFIX_PATH=%PREFIX_PATH%" -D "CMAKE_BUILD_TYPE=%BUILD_TYPE%" -D "CMAKE_INSTALL_PREFIX=%INSTALL_PREFIX%" %PROJECT_DIR%
|
||||
Executable
+8
@@ -0,0 +1,8 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
BIN_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )" # Get directory of this file
|
||||
PROJECT_DIR=$(dirname $BIN_DIR) # Get root directory of project
|
||||
source $BIN_DIR/common/setup $1
|
||||
|
||||
cd $BUILD_DIR
|
||||
cmake --build . --target install/strip "${@:2}"
|
||||
@@ -0,0 +1,15 @@
|
||||
@echo off
|
||||
setlocal enableextensions enabledelayedexpansion
|
||||
|
||||
rem Path to bin and project folder
|
||||
set BIN_DIR_WITH_BACKSLASH=%~dp0%
|
||||
set BIN_DIR=%BIN_DIR_WITH_BACKSLASH:~0,-1%
|
||||
set PROJECT_DIR=%BIN_DIR%\..
|
||||
|
||||
rem Run common setup code
|
||||
call "%BIN_DIR%\common\setup.bat" %*
|
||||
if %ERRORLEVEL% neq 0 (exit /b 1)
|
||||
|
||||
rem Run install
|
||||
cd "%BUILD_DIR%"
|
||||
cmake --build . --config %BUILD_TYPE% --target install
|
||||
@@ -0,0 +1,8 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
BIN_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )" # Get directory of this file
|
||||
PROJECT_DIR=$(dirname $BIN_DIR) # Get root directory of project
|
||||
source $BIN_DIR/common/setup $1
|
||||
|
||||
cd $BUILD_DIR
|
||||
cmake --build . --target package "${@:2}"
|
||||
@@ -0,0 +1,15 @@
|
||||
@echo off
|
||||
setlocal enableextensions enabledelayedexpansion
|
||||
|
||||
rem Path to bin and project folder
|
||||
set BIN_DIR_WITH_BACKSLASH=%~dp0%
|
||||
set BIN_DIR=%BIN_DIR_WITH_BACKSLASH:~0,-1%
|
||||
set PROJECT_DIR=%BIN_DIR%\..
|
||||
|
||||
rem Run common setup code
|
||||
call "%BIN_DIR%\common\setup.bat" %*
|
||||
if %ERRORLEVEL% neq 0 (exit /b 1)
|
||||
|
||||
rem Run install
|
||||
cd "%BUILD_DIR%"
|
||||
cmake --build . --config %BUILD_TYPE% --target package
|
||||
@@ -0,0 +1,12 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
BIN_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )" # Get directory of this file
|
||||
PROJECT_DIR=$(dirname $BIN_DIR) # Get root directory of project
|
||||
source $BIN_DIR/common/setup $1
|
||||
|
||||
if [ "$(uname -s)" == "Darwin" ]; then
|
||||
# On Mac OS we should run executable from bundle
|
||||
"$BUILD_DIR/src/robomongo/Robomongo.app/Contents/MacOS/Robomongo"
|
||||
else
|
||||
"$BUILD_DIR/src/robomongo/robomongo"
|
||||
fi
|
||||
@@ -0,0 +1,142 @@
|
||||
#
|
||||
# Find the MongoDB libraries
|
||||
#
|
||||
# This module defines the following variables:
|
||||
# MongoDB_FOUND
|
||||
# MongoDB_LIBS
|
||||
# MongoDB_INCLUDE_DIRS
|
||||
# MongoDB_DEFINITIONS
|
||||
#
|
||||
# Imported target "mongodb" is created
|
||||
#
|
||||
# We assume, that at least "mongo" target was build by the following command:
|
||||
# $ scons mongo
|
||||
#
|
||||
#
|
||||
|
||||
# Try to find MongoDB directory (uses CMAKE_PREFIX_PATH locations)
|
||||
find_path(
|
||||
MongoDB_DIR src/mongo/config.h.in
|
||||
DOC "Path to MongoDB (github.com/robomongo-shell) root directory"
|
||||
)
|
||||
|
||||
# Find relative path to build directory
|
||||
if(BUILD_RELEASE OR BUILD_RELWITHDEBINFO OR BUILD_MINSIZEREL)
|
||||
set(MongoDB_RELATIVE_BUILD_DIR build/opt)
|
||||
set(MongoDB_OBJECT_LIST_BUILD_TYPE_PART release)
|
||||
elseif(BUILD_DEBUG)
|
||||
set(MongoDB_RELATIVE_BUILD_DIR build/debug)
|
||||
set(MongoDB_OBJECT_LIST_BUILD_TYPE_PART debug)
|
||||
endif()
|
||||
|
||||
# Set absolute path to build directory
|
||||
set(MongoDB_BUILD_DIR ${MongoDB_DIR}/${MongoDB_RELATIVE_BUILD_DIR})
|
||||
|
||||
# Set commong compiler definitons
|
||||
set(MongoDB_DEFINITIONS
|
||||
PCRE_STATIC
|
||||
BOOST_THREAD_VERSION=4
|
||||
BOOST_THREAD_DONT_PROVIDE_VARIADIC_THREAD
|
||||
BOOST_THREAD_NO_DEPRECATED
|
||||
BOOST_THREAD_DONT_PROVIDE_INTERRUPTIONS
|
||||
BOOST_THREAD_HAS_BUG
|
||||
MONGO_CONFIG_HAVE_HEADER_UNISTD_H
|
||||
)
|
||||
|
||||
# Set common compiler include directories
|
||||
set(MongoDB_INCLUDE_DIRS
|
||||
${MongoDB_DIR}/src
|
||||
${MongoDB_DIR}/src/third_party/boost-1.56.0
|
||||
${MongoDB_DIR}/src/third_party/mozjs-38/include
|
||||
${MongoDB_DIR}/src/third_party/mozjs-38/mongo_sources
|
||||
${MongoDB_DIR}/src/third_party/pcre-8.37
|
||||
${MongoDB_BUILD_DIR}
|
||||
)
|
||||
|
||||
if(SYSTEM_LINUX)
|
||||
set(MongoDB_OBJECT_LIST_PLATFORM_PART linux)
|
||||
list(APPEND MongoDB_INCLUDE_DIRS
|
||||
${MongoDB_DIR}/src/third_party/mozjs-38/platform/x86_64/linux/include)
|
||||
elseif(SYSTEM_WINDOWS)
|
||||
set(MongoDB_OBJECT_LIST_PLATFORM_PART windows)
|
||||
list(APPEND MongoDB_INCLUDE_DIRS
|
||||
${MongoDB_DIR}/src/third_party/mozjs-38/platform/x86_64/windows/include)
|
||||
elseif(SYSTEM_MACOSX)
|
||||
set(MongoDB_OBJECT_LIST_PLATFORM_PART macosx)
|
||||
list(APPEND MongoDB_INCLUDE_DIRS
|
||||
${MongoDB_DIR}/src/third_party/mozjs-38/platform/x86_64/osx/include)
|
||||
elseif(SYSTEM_FREEBSD)
|
||||
set(MongoDB_OBJECT_LIST_PLATFORM_PART freebsd)
|
||||
list(APPEND MongoDB_INCLUDE_DIRS
|
||||
${MongoDB_DIR}/src/third_party/mozjs-38/platform/x86_64/freebsd/include)
|
||||
elseif(SYSTEM_OPENBSD)
|
||||
set(MongoDB_OBJECT_LIST_PLATFORM_PART openbsd)
|
||||
list(APPEND MongoDB_INCLUDE_DIRS
|
||||
${MongoDB_DIR}/src/third_party/mozjs-38/platform/x86_64/openbsd/include)
|
||||
endif()
|
||||
|
||||
# Read list of object files
|
||||
# See "mongodb/README.md" file (relative to the current folder) for more information.
|
||||
file(READ
|
||||
${CMAKE_CURRENT_LIST_DIR}/mongodb/${MongoDB_OBJECT_LIST_PLATFORM_PART}-${MongoDB_OBJECT_LIST_BUILD_TYPE_PART}.objects
|
||||
MongoDB_RELATIVE_LIBS)
|
||||
|
||||
string(STRIP "${MongoDB_RELATIVE_LIBS}" MongoDB_RELATIVE_LIBS)
|
||||
|
||||
# Convert string to list
|
||||
string(REPLACE " " ";" MongoDB_RELATIVE_LIBS ${MongoDB_RELATIVE_LIBS})
|
||||
|
||||
# Convert to absolute path
|
||||
foreach(lib ${MongoDB_RELATIVE_LIBS})
|
||||
list(APPEND MongoDB_LIBS ${MongoDB_DIR}/${lib})
|
||||
endforeach()
|
||||
|
||||
# Get MongoDB repository recent tag
|
||||
execute_process(
|
||||
COMMAND git describe --abbrev=0 --tags
|
||||
WORKING_DIRECTORY ${MongoDB_DIR}
|
||||
OUTPUT_VARIABLE MongoDB_RECENT_TAG
|
||||
OUTPUT_STRIP_TRAILING_WHITESPACE
|
||||
)
|
||||
|
||||
# Handle the QUIETLY and REQUIRED arguments and set ALSA_FOUND to TRUE if
|
||||
# all listed variables are TRUE
|
||||
include(FindPackageHandleStandardArgs)
|
||||
find_package_handle_standard_args(MongoDB
|
||||
FOUND_VAR MongoDB_FOUND # When using CMake 3.0 MONGODB_FOUND variable will be created.
|
||||
# Make it explicit that variable name is MongoDB_FOUND.
|
||||
REQUIRED_VARS MongoDB_DIR MongoDB_BUILD_DIR
|
||||
VERSION_VAR MongoDB_RECENT_TAG
|
||||
FAIL_MESSAGE "Could not find Robomongo Shell (MongoDB fork). Make sure that CMAKE_PREFIX_PATH points to Robomongo Shell project root.\n")
|
||||
|
||||
if(MongoDB_FOUND)
|
||||
set(MongoDB_VERSION ${MongoDB_RECENT_TAG})
|
||||
|
||||
# Original MongoDB link command has the following in the end: m rt dl
|
||||
set(MongoDB_LIBS
|
||||
${LINK_WHOLE_ARCHIVE_START} # Linux: -Wl,--whole-archive
|
||||
${LINK_LIBGROUP_START} # Linux: -Wl,--start-group
|
||||
${MongoDB_LIBS}
|
||||
${LINK_LIBGROUP_END} # Linux: -Wl,--end-group
|
||||
${LINK_WHOLE_ARCHIVE_END} # Linux: -Wl,--no-whole-archive
|
||||
${CMAKE_DL_LIBS} # Linux: dl
|
||||
)
|
||||
|
||||
# Add imported target
|
||||
add_library(mongodb INTERFACE IMPORTED)
|
||||
|
||||
# Specify INTERFACE properties for this target
|
||||
set_target_properties(mongodb PROPERTIES
|
||||
INTERFACE_LINK_LIBRARIES "${MongoDB_LIBS}"
|
||||
INTERFACE_COMPILE_DEFINITIONS "${MongoDB_DEFINITIONS}"
|
||||
INTERFACE_INCLUDE_DIRECTORIES "${MongoDB_INCLUDE_DIRS}"
|
||||
)
|
||||
|
||||
endif()
|
||||
|
||||
# Cleanup
|
||||
unset(MongoDB_OBJECT_LIST_BUILD_TYPE_PART)
|
||||
unset(MongoDB_OBJECT_LIST_PLATFORM_PART)
|
||||
unset(MongoDB_RELATIVE_BUILD_DIR)
|
||||
unset(MongoDB_RELATIVE_LIBS)
|
||||
unset(MongoDB_RECENT_TAG)
|
||||
@@ -0,0 +1,21 @@
|
||||
# This wrapper is created in order to support CMake 3.0
|
||||
# Only starting from CMake 3.1 "Threads" module exports
|
||||
# "Threads::Threads" target.
|
||||
|
||||
find_package(Threads REQUIRED)
|
||||
|
||||
# Support for CMake 3.0
|
||||
# Export "Threads::Threads" imported target if it wasn't exported.
|
||||
# This lines are taken from the "FindThreads.cmake" of CMake 3.1:
|
||||
# https://github.com/Kitware/CMake/blob/v3.1.0/Modules/FindThreads.cmake
|
||||
if(THREADS_FOUND AND NOT TARGET Threads::Threads)
|
||||
add_library(Threads::Threads INTERFACE IMPORTED)
|
||||
|
||||
if(THREADS_HAVE_PTHREAD_ARG)
|
||||
set_property(TARGET Threads::Threads PROPERTY INTERFACE_COMPILE_OPTIONS "-pthread")
|
||||
endif()
|
||||
|
||||
if(CMAKE_THREAD_LIBS_INIT)
|
||||
set_property(TARGET Threads::Threads PROPERTY INTERFACE_LINK_LIBRARIES "${CMAKE_THREAD_LIBS_INIT}")
|
||||
endif()
|
||||
endif()
|
||||
@@ -0,0 +1,20 @@
|
||||
Quick reference to CMake
|
||||
========================
|
||||
|
||||
if(<constant>)
|
||||
|
||||
True if the constant is `1`, `ON`, `YES`, `TRUE`, `Y`, or a non-zero number.
|
||||
False if the constant is `0`, `OFF`, `NO`, `FALSE`, `N`, `IGNORE`, `NOTFOUND`,
|
||||
the empty string, or ends in the suffix `-NOTFOUND`. Named boolean constants
|
||||
are case-insensitive. If the argument is not one of these constants, it is
|
||||
treated as a variable.
|
||||
|
||||
if(<variable>)
|
||||
|
||||
True if the variable is defined to a value that is not a false constant. False otherwise.
|
||||
(Note macro arguments are not variables.)
|
||||
|
||||
if(DEFINED <variable>)
|
||||
|
||||
True if the given variable is defined. It does not matter if the variable is
|
||||
true or false just if it has been set. (Note macro arguments are not variables.)
|
||||
@@ -0,0 +1,32 @@
|
||||
# Put the include dirs which are in the source or build tree
|
||||
# before all other include dirs, so the headers in the sources
|
||||
# are prefered over the already installed ones
|
||||
# Since cmake 2.4.1
|
||||
set(CMAKE_INCLUDE_DIRECTORIES_PROJECT_BEFORE ON)
|
||||
|
||||
# Use colored output
|
||||
# Since cmake 2.4.0
|
||||
set(CMAKE_COLOR_MAKEFILE ON)
|
||||
|
||||
# MongoDB compiled with this option
|
||||
set(CMAKE_POSITION_INDEPENDENT_CODE ON)
|
||||
|
||||
# This variable is used by CMake "FindThreads" module
|
||||
# From documentation to FindThreads module:
|
||||
# > Please note that the compiler flag can only be
|
||||
# > used with the imported target. Use of both the imported
|
||||
# > target as well as this switch is highly recommended for new code.
|
||||
set(THREADS_PREFER_PTHREAD_FLAG ON)
|
||||
|
||||
# Set the default build type to release with debug info
|
||||
if(NOT CMAKE_BUILD_TYPE)
|
||||
set(CMAKE_BUILD_TYPE RelWithDebInfo
|
||||
CACHE STRING "Choose the type of build, options are: Debug, Release, RelWithDebInfo, MinSizeRel and None(CMAKE_CXX_FLAGS or CMAKE_C_FLAGS used)"
|
||||
FORCE)
|
||||
endif()
|
||||
|
||||
# Do not use Qt moc, uic and rcc by default
|
||||
# Since CMake 2.8.6
|
||||
set(CMAKE_AUTOMOC OFF)
|
||||
set(CMAKE_AUTORCC OFF)
|
||||
set(CMAKE_AUTOUIC OFF)
|
||||
@@ -0,0 +1,3 @@
|
||||
|
||||
set(ROBOMONGO_DISPLAY_NAME "Robomongo")
|
||||
set(ROBOMONGO_DISPLAY_FULL_NAME "Robomongo ${PROJECT_VERSION}")
|
||||
@@ -0,0 +1,30 @@
|
||||
# Show configuration summary and build tip
|
||||
message("")
|
||||
message(" _______________[ Robomongo configuration summary ]________________")
|
||||
message("| ")
|
||||
message("|-- Dependencies:")
|
||||
message("| ")
|
||||
message("| Qt5 Core: ${Qt5Core_VERSION} ${Qt5Core_DIR}")
|
||||
message("| Qt5 Gui: ${Qt5Gui_VERSION} ${Qt5Gui_DIR}")
|
||||
message("| Qt5 Widgets: ${Qt5Widgets_VERSION} ${Qt5Widgets_DIR}")
|
||||
message("| Qt5 PrintSupport: ${Qt5Widgets_VERSION} ${Qt5PrintSupport_DIR}")
|
||||
message("| MongoDB: ${MongoDB_VERSION} ${MongoDB_BUILD_DIR}")
|
||||
message("|")
|
||||
message("|-- Summary:")
|
||||
message("|")
|
||||
message("| System: ${CMAKE_SYSTEM_NAME}")
|
||||
if (SYSTEM_MACOSX)
|
||||
message("| Target SDK: ${CMAKE_OSX_DEPLOYMENT_TARGET}")
|
||||
endif()
|
||||
message("| Build type: ${CMAKE_BUILD_TYPE}")
|
||||
message("| Install path: ${CMAKE_INSTALL_PREFIX}")
|
||||
message("|")
|
||||
message("|-- Building and installing:")
|
||||
message("| ")
|
||||
message("| Now you can build Robomongo with the following command:")
|
||||
message("| $ cmake --build .")
|
||||
message("|")
|
||||
message("| And install it to ${CMAKE_INSTALL_PREFIX}:")
|
||||
message("| $ cmake --build . --target install")
|
||||
message("|__________________________________________________________________")
|
||||
message("")
|
||||
@@ -0,0 +1,66 @@
|
||||
# This files defines:
|
||||
#
|
||||
# 1) Platform checks
|
||||
#
|
||||
# SYSTEM_MACOSX
|
||||
# SYSTEM_WINDOWS
|
||||
# SYSTEM_LINUX
|
||||
# SYSTEM_FREEBSD
|
||||
# SYSTEM_OPENBSD
|
||||
# SYSTEM_NETBSD
|
||||
#
|
||||
# 2) Build types checks
|
||||
#
|
||||
# BUILD_DEBUG
|
||||
# BUILD_RELEASE
|
||||
# BUILD_RELWITHDEBINFO
|
||||
# BUILD_MINSIZEREL
|
||||
#
|
||||
# 3) Link "lib groups" and "whole-archive" options
|
||||
#
|
||||
# LINK_LIBGROUP_START
|
||||
# LINK_LIBGROUP_END
|
||||
# LINK_WHOLE_ARCHIVE_START
|
||||
# LINK_WHOLE_ARCHIVE_END
|
||||
|
||||
# Platform checks
|
||||
if(CMAKE_SYSTEM_NAME MATCHES "Darwin")
|
||||
set(SYSTEM_MACOSX TRUE)
|
||||
elseif(CMAKE_SYSTEM_NAME MATCHES "Windows")
|
||||
set(SYSTEM_WINDOWS TRUE)
|
||||
elseif(CMAKE_SYSTEM_NAME MATCHES "Linux")
|
||||
set(SYSTEM_LINUX TRUE)
|
||||
elseif(CMAKE_SYSTEM_NAME MATCHES "FreeBSD")
|
||||
set(SYSTEM_FREEBSD TRUE)
|
||||
set(SYSTEM_BSD TRUE)
|
||||
elseif(CMAKE_SYSTEM_NAME MATCHES "OpenBSD")
|
||||
set(SYSTEM_OPENBSD TRUE)
|
||||
set(SYSTEM_BSD TRUE)
|
||||
elseif(CMAKE_SYSTEM_NAME MATCHES "NetBSD")
|
||||
set(SYSTEM_NETBSD TRUE)
|
||||
set(SYSTEM_BSD TRUE)
|
||||
endif()
|
||||
|
||||
# Build types
|
||||
if("${CMAKE_BUILD_TYPE}" MATCHES "Debug")
|
||||
set(BUILD_DEBUG TRUE)
|
||||
elseif("${CMAKE_BUILD_TYPE}" MATCHES "Release")
|
||||
set(BUILD_RELEASE TRUE)
|
||||
elseif("${CMAKE_BUILD_TYPE}" MATCHES "RelWithDebInfo")
|
||||
set(BUILD_RELWITHDEBINFO TRUE)
|
||||
elseif("${CMAKE_BUILD_TYPE}" MATCHES "MinSizeRel")
|
||||
set(BUILD_MINSIZEREL TRUE)
|
||||
endif()
|
||||
|
||||
# Link "groups" and "whole-archive" options
|
||||
if(SYSTEM_LINUX OR SYSTEM_FREEBSD OR SYSTEM_OPENBSD)
|
||||
set(LINK_LIBGROUP_START -Wl,--start-group)
|
||||
set(LINK_LIBGROUP_END -Wl,--end-group)
|
||||
set(LINK_WHOLE_ARCHIVE_START -Wl,--whole-archive)
|
||||
set(LINK_WHOLE_ARCHIVE_END -Wl,--no-whole-archive)
|
||||
elseif(SYSTEM_MACOSX)
|
||||
set(LINK_LIBGROUP_START "")
|
||||
set(LINK_LIBGROUP_END "")
|
||||
set(LINK_WHOLE_ARCHIVE_START -Wl,-all_load)
|
||||
set(LINK_WHOLE_ARCHIVE_END -Wl,-noall_load)
|
||||
endif()
|
||||
@@ -0,0 +1,108 @@
|
||||
# Note for maintainers
|
||||
# --------------------
|
||||
#
|
||||
# Do not use absolute paths in DESTINATION arguments for install() command.
|
||||
# Because the same install code will be executed again by CPack. And CPack will
|
||||
# change internally CMAKE_INSTALL_PREFIX to point to some temporary folder
|
||||
# for package content.
|
||||
#
|
||||
#
|
||||
|
||||
|
||||
# Temporary change
|
||||
set(CMAKE_INSTALL_PREFIX "${CMAKE_BINARY_DIR}/install"
|
||||
CACHE STRING "Install path prefix, prepended onto install directories"
|
||||
FORCE)
|
||||
|
||||
if(SYSTEM_LINUX)
|
||||
set(bin_dir bin)
|
||||
set(lib_dir lib)
|
||||
set(resources_dir share)
|
||||
set(license_dir .)
|
||||
|
||||
set(qt_plugins_dir ${lib_dir})
|
||||
set(qt_conf_dir ${bin_dir})
|
||||
set(qt_conf_plugins "../lib")
|
||||
elseif(SYSTEM_MACOSX)
|
||||
set(bundle_name Robomongo.app)
|
||||
set(contents_path ${bundle_name}/Contents)
|
||||
|
||||
set(bin_dir ${contents_path}/MacOS)
|
||||
set(lib_dir ${contents_path}/Frameworks)
|
||||
set(resources_dir ${contents_path}/Resources)
|
||||
set(license_dir ${resources_dir})
|
||||
|
||||
set(qt_plugins_dir ${contents_path}/PlugIns/Qt)
|
||||
set(qt_conf_dir ${resources_dir})
|
||||
set(qt_conf_plugins "PlugIns/Qt")
|
||||
elseif(SYSTEM_WINDOWS)
|
||||
set(bin_dir .)
|
||||
set(lib_dir .)
|
||||
set(resources_dir .)
|
||||
set(license_dir .)
|
||||
|
||||
set(qt_plugins_dir ${lib_dir})
|
||||
set(qt_conf_dir ${bin_dir})
|
||||
set(qt_conf_plugins .)
|
||||
endif()
|
||||
|
||||
# Generate qt.conf file
|
||||
configure_file(
|
||||
"${CMAKE_SOURCE_DIR}/install/qt.conf.in"
|
||||
"${CMAKE_BINARY_DIR}/qt.conf")
|
||||
|
||||
# Install qt.conf file
|
||||
install(
|
||||
FILES "${CMAKE_BINARY_DIR}/qt.conf"
|
||||
DESTINATION "${qt_conf_dir}")
|
||||
|
||||
# Install binary
|
||||
install(
|
||||
TARGETS robomongo
|
||||
RUNTIME DESTINATION ${bin_dir}
|
||||
BUNDLE DESTINATION .)
|
||||
|
||||
# Install license, copyright and changelogs files
|
||||
install(
|
||||
FILES
|
||||
${CMAKE_SOURCE_DIR}/LICENSE
|
||||
${CMAKE_SOURCE_DIR}/COPYRIGHT
|
||||
${CMAKE_SOURCE_DIR}/CHANGELOG
|
||||
${CMAKE_SOURCE_DIR}/DESCRIPTION
|
||||
DESTINATION ${license_dir})
|
||||
|
||||
# Install common dependencies
|
||||
install_qt_lib(Core Gui Widgets PrintSupport)
|
||||
install_qt_plugins(QGifPlugin QICOPlugin)
|
||||
install_icu_libs()
|
||||
|
||||
if(SYSTEM_LINUX)
|
||||
install_qt_lib(XcbQpa DBus)
|
||||
install_qt_plugins(
|
||||
QGtk2ThemePlugin
|
||||
QXcbIntegrationPlugin)
|
||||
|
||||
elseif(SYSTEM_MACOSX)
|
||||
install_qt_lib(MacExtras DBus)
|
||||
install_qt_plugins(
|
||||
QCocoaIntegrationPlugin
|
||||
QMinimalIntegrationPlugin
|
||||
QOffscreenIntegrationPlugin)
|
||||
|
||||
# Install icon
|
||||
install(
|
||||
FILES "${CMAKE_SOURCE_DIR}/install/macosx/Robomongo.icns"
|
||||
DESTINATION "${resources_dir}")
|
||||
elseif(SYSTEM_WINDOWS)
|
||||
install_qt_plugins(
|
||||
QWindowsIntegrationPlugin
|
||||
QMinimalIntegrationPlugin
|
||||
QOffscreenIntegrationPlugin)
|
||||
|
||||
# Install runtime libraries:
|
||||
# msvcp120.dll
|
||||
# msvcr120.dll
|
||||
set(CMAKE_INSTALL_SYSTEM_RUNTIME_DESTINATION .)
|
||||
include(InstallRequiredSystemLibraries)
|
||||
endif()
|
||||
|
||||
@@ -0,0 +1,105 @@
|
||||
function(install_qt_lib)
|
||||
foreach(module ${ARGV})
|
||||
set(target_name Qt5::${module})
|
||||
set(module_name Qt5${module})
|
||||
|
||||
# Get full path to some known Qt library (i.e. /path/to/lib/libQt5Widgets.so.5.5.1)
|
||||
get_target_property(target_path Qt5::Core LOCATION)
|
||||
|
||||
# Get folder path of library (i.e. /path/to/lib)
|
||||
get_filename_component(qt_lib_dir ${target_path} DIRECTORY)
|
||||
|
||||
if (SYSTEM_LINUX)
|
||||
# Not very good solution, but we simply take all files with *Qt5<module>* in names (including symlinks)
|
||||
file(GLOB module_libs ${qt_lib_dir}/${CMAKE_SHARED_LIBRARY_PREFIX}${module_name}*)
|
||||
|
||||
# Install to "lib" folder
|
||||
install(FILES ${module_libs}
|
||||
DESTINATION ${lib_dir})
|
||||
endif()
|
||||
|
||||
if(SYSTEM_MACOSX)
|
||||
set(module_name Qt${module})
|
||||
|
||||
# On Mac OS we are still located in .framework folder,
|
||||
# and we need to go one level up
|
||||
get_filename_component(qt_lib_dir ${qt_lib_dir} DIRECTORY)
|
||||
|
||||
install(
|
||||
DIRECTORY ${qt_lib_dir}/${module_name}.framework
|
||||
DESTINATION ${lib_dir}
|
||||
PATTERN "*_debug" EXCLUDE # Exclude debug libraries
|
||||
PATTERN "Headers" EXCLUDE) # Exclude Headers folders
|
||||
endif()
|
||||
|
||||
if (SYSTEM_WINDOWS)
|
||||
# Install single DLL to lib directory
|
||||
install(FILES ${qt_lib_dir}/${module_name}${CMAKE_SHARED_LIBRARY_SUFFIX}
|
||||
DESTINATION ${lib_dir})
|
||||
endif()
|
||||
|
||||
endforeach()
|
||||
endfunction()
|
||||
|
||||
function(install_icu_libs)
|
||||
# We are trying to get 'lib' folder of Qt installation.
|
||||
# For this we take some known target (Qt5::Core in this case)
|
||||
# and taking path to this library.
|
||||
|
||||
# Get full path to known library (i.e. /path/to/lib/libQt5Core.so.5.5.1)
|
||||
get_target_property(target_path Qt5::Core LOCATION)
|
||||
|
||||
# Get absolute path to 'lib' folder (which is a parent folder of 'known' library)
|
||||
get_filename_component(qt_lib_dir ${target_path} DIRECTORY)
|
||||
|
||||
# Not very good solution, but we simply take all files with *icu* in names (including symlinks)
|
||||
file(GLOB icu_libs ${qt_lib_dir}/${CMAKE_SHARED_LIBRARY_PREFIX}icu*)
|
||||
|
||||
# Install to "lib" folder
|
||||
install(FILES ${icu_libs}
|
||||
DESTINATION ${lib_dir})
|
||||
endfunction()
|
||||
|
||||
# Installs Qt5 plugins. Uses value of global variable "qt_plugins_dir" as
|
||||
# absolute path to where install plugins.
|
||||
#
|
||||
# You can find list of plugin names by examing this variable: Qt5<Module>_PLUGINS
|
||||
# For example, Qt5Gui_PLUGINS.
|
||||
#
|
||||
# Debug plugins, running application in this way:
|
||||
# QT_DEBUG_PLUGINS=1 ./yourapp
|
||||
#
|
||||
# Some examples of plugin names:
|
||||
# QGifPlugin, QGtk2ThemePlugin, QIbusPlatformInputContextPlugin
|
||||
#
|
||||
# Sample:
|
||||
# install_qt_plugins(QGifPlugin QGtk2ThemePlugin QIbusPlatformInputContextPlugin)
|
||||
#
|
||||
function(install_qt_plugins)
|
||||
foreach(name ${ARGV})
|
||||
set(target_name Qt5::${name})
|
||||
|
||||
# We are trying to get 'plugins' folder of Qt installation.
|
||||
|
||||
# Get full path to plugin library (i.e. /path/to/plugins/imageformats/libqgif.so)
|
||||
get_target_property(target_path ${target_name} LOCATION)
|
||||
|
||||
# Get absolute path to parent folder (i.e. /path/to/plugins/imageformats for Qt5::QGifPlugin)
|
||||
get_filename_component(plugin_dir ${target_path} DIRECTORY)
|
||||
|
||||
# Get plugin parent directory (i.e. "imageformats" for Qt5::QGifPlugin)
|
||||
get_filename_component(plugin_dir_name ${plugin_dir} NAME)
|
||||
|
||||
# Get plugin file name (i.e. "libqgif.so" for Qt5::QGifPlugin)
|
||||
get_filename_component(plugin_file_name ${target_path} NAME)
|
||||
|
||||
# Get absolute path to plugins folder (i.e. /path/to/plugins)
|
||||
get_filename_component(plugins_dir ${plugin_dir} DIRECTORY)
|
||||
|
||||
# Install to "lib" folder
|
||||
install(
|
||||
FILES ${target_path}
|
||||
DESTINATION ${qt_plugins_dir}/${plugin_dir_name})
|
||||
endforeach()
|
||||
endfunction()
|
||||
|
||||
@@ -0,0 +1,120 @@
|
||||
# Notes for maintainers.
|
||||
#
|
||||
# 1. Make sure that we use only lowercase letters in file name of outputed
|
||||
# package for all platforms and package types.
|
||||
#
|
||||
|
||||
# Get last commit hash
|
||||
execute_process(
|
||||
COMMAND git rev-parse --short HEAD
|
||||
WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}
|
||||
OUTPUT_VARIABLE git_hash
|
||||
OUTPUT_STRIP_TRAILING_WHITESPACE)
|
||||
|
||||
# Timestamp (not used for now)
|
||||
string(TIMESTAMP timestamp "%Y-%m-%d")
|
||||
|
||||
# Package name (as it should appear in UI)
|
||||
set(CPACK_PACKAGE_NAME Robomongo)
|
||||
|
||||
# Version of the package
|
||||
set(CPACK_PACKAGE_VERSION_MAJOR ${PROJECT_VERSION_MAJOR})
|
||||
set(CPACK_PACKAGE_VERSION_MINOR ${PROJECT_VERSION_MINOR})
|
||||
set(CPACK_PACKAGE_VERSION_PATCH ${PROJECT_VERSION_PATCH})
|
||||
set(CPACK_PACKAGE_VERSION ${PROJECT_VERSION})
|
||||
|
||||
# Where to put generated package
|
||||
set(CPACK_PACKAGE_DIRECTORY ${CMAKE_BINARY_DIR}/package)
|
||||
|
||||
# Disables the component-based install process for installers
|
||||
# that support it (NSIS, for instance)
|
||||
set(CPACK_MONOLITHIC_INSTALL ON)
|
||||
|
||||
# Strip debug information on platforms that support it
|
||||
set(CPACK_STRIP_FILES ON)
|
||||
|
||||
# Additional information
|
||||
set(CPACK_PACKAGE_VENDOR Paralect)
|
||||
set(CPACK_PACKAGE_CONTACT robomongo@paralect.com)
|
||||
set(CPACK_PACKAGE_DESCRIPTION "Shell-centric cross-platform MongoDB management tool.")
|
||||
set(CPACK_PACKAGE_DESCRIPTION_SUMMARY "Robomongo is a shell-centric cross-platform MongoDB management tool.")
|
||||
|
||||
# Use lowercase for system name and package file name
|
||||
string(TOLOWER ${CMAKE_SYSTEM_NAME} system_name)
|
||||
string(TOLOWER ${CPACK_PACKAGE_NAME} package_file_name)
|
||||
string(TOLOWER ${CPACK_PACKAGE_VERSION} package_file_version)
|
||||
|
||||
# We use function from TargetArch.cmake module
|
||||
# Returns string with target architecture value
|
||||
# Output for common architectures is: i386 or x86_64
|
||||
target_architecture(target_arch)
|
||||
|
||||
# Package file name
|
||||
set(CPACK_PACKAGE_FILE_NAME ${package_file_name}-${package_file_version}-${system_name}-${target_arch}-${git_hash})
|
||||
|
||||
if(SYSTEM_LINUX)
|
||||
set(CPACK_GENERATOR TGZ)
|
||||
|
||||
|
||||
elseif(SYSTEM_MACOSX)
|
||||
set(CPACK_GENERATOR DragNDrop)
|
||||
set(CPACK_DMG_DS_STORE ${CMAKE_SOURCE_DIR}/install/macosx/DMG_DS_Store)
|
||||
|
||||
elseif(SYSTEM_WINDOWS)
|
||||
set(files_dir "${CMAKE_SOURCE_DIR}/install/windows")
|
||||
set(exe_name "Robomongo.exe")
|
||||
|
||||
set(CPACK_GENERATOR NSIS ZIP)
|
||||
set(CPACK_PACKAGE_DESCRIPTION_FILE "${CMAKE_SOURCE_DIR}/DESCRIPTION")
|
||||
|
||||
# License file will be shown in the installation wizard
|
||||
set(CPACK_RESOURCE_FILE_LICENSE "${CMAKE_SOURCE_DIR}/LICENSE")
|
||||
|
||||
# Default installation directory (not full path), just the path after
|
||||
# default "c:\Program Files"
|
||||
set(CPACK_PACKAGE_INSTALL_DIRECTORY "${ROBOMONGO_DISPLAY_FULL_NAME}")
|
||||
|
||||
# A path to the executable inside installed package that contains icon
|
||||
# This icon is used in Windows "Add or remove programs" control panel
|
||||
set(CPACK_NSIS_INSTALLED_ICON_NAME "\\\\${exe_name}")
|
||||
|
||||
# Create shortcuts on desktop and start-up menu
|
||||
set(CPACK_NSIS_CREATE_ICONS_EXTRA "
|
||||
CreateShortCut '$SMPROGRAMS\\\\$STARTMENU_FOLDER\\\\${ROBOMONGO_DISPLAY_FULL_NAME}.lnk' '$INSTDIR\\\\${exe_name}'
|
||||
CreateShortCut '$DESKTOP\\\\${ROBOMONGO_DISPLAY_FULL_NAME}.lnk' '$INSTDIR\\\\${exe_name}'
|
||||
")
|
||||
|
||||
# Cleanup during uninstallation. This cleanup is required because shortcuts
|
||||
# will not be deleted automatically.
|
||||
# Without line '!insertmacro...' shortcut in start menu will not be removed
|
||||
# (i.e. it doesn't work when we referece '$STARTMENU_FOLDER' that is used
|
||||
# when creating shortcuts). This solution was found somewhere in internet.
|
||||
set(CPACK_NSIS_DELETE_ICONS_EXTRA "
|
||||
!insertmacro MUI_STARTMENU_GETFOLDER Application $MUI_TEMP
|
||||
Delete '$DESKTOP\\\\${ROBOMONGO_DISPLAY_FULL_NAME}.lnk'
|
||||
Delete '$SMPROGRAMS\\\\$MUI_TEMP\\\\${ROBOMONGO_DISPLAY_FULL_NAME}.lnk'
|
||||
")
|
||||
|
||||
# The title displayed at the top of the installer
|
||||
set(CPACK_NSIS_PACKAGE_NAME "${ROBOMONGO_DISPLAY_FULL_NAME}")
|
||||
|
||||
# Installer images (for sidebar and topbar)
|
||||
set(CPACK_PACKAGE_ICON "${files_dir}\\\\nsis-topbar.bmp")
|
||||
set(CPACK_NSIS_INSTALLER_MUI_ICON_CODE "!define MUI_WELCOMEFINISHPAGE_BITMAP \\\"${files_dir}\\\\nsis-sidebar.bmp\\\"")
|
||||
|
||||
# URL to a web site providing more information about application
|
||||
# This url was noticed at least in "Add or remove programs" control
|
||||
# panel.
|
||||
set(CPACK_NSIS_URL_INFO_ABOUT "www.robomongo.org")
|
||||
|
||||
# Specify an executable to add an option to run on the finish
|
||||
# page of the NSIS installer. Without "..\\\\" it dowsn't work for NSIS 2.5
|
||||
set(CPACK_NSIS_MUI_FINISHPAGE_RUN "..\\\\${exe_name}")
|
||||
|
||||
# Trying to set for installer and uninstaller, but this is
|
||||
# doesn't work and default icons are still used...
|
||||
set(CPACK_NSIS_MUI_ICON "${files_dir}\\\\robomongo.ico")
|
||||
set(CPACK_NSIS_MUI_UNIICON "${files_dir}\\\\robomongo.ico")
|
||||
endif()
|
||||
|
||||
include(CPack)
|
||||
@@ -0,0 +1,123 @@
|
||||
###
|
||||
# Prints CMake variables.
|
||||
#
|
||||
# Print all variables in the current scope:
|
||||
#
|
||||
# print_vars()
|
||||
# print_vars("") # the same result, as previous line
|
||||
#
|
||||
# Print all variables with names, matching regex, case insensitive:
|
||||
#
|
||||
# print_vars("SOMEVAR")
|
||||
# print_vars("someVar") # the same result, as previous line
|
||||
# print_vars("^CMAKE") # print all variables, that starts from "CMAKE"
|
||||
# print_vars("VAR$") # ends by "VAR"
|
||||
# print_vars("^VAR$") # exact match
|
||||
#
|
||||
function(print_vars)
|
||||
if(ARGV0)
|
||||
set(regex ${ARGV0})
|
||||
endif()
|
||||
get_cmake_property(names VARIABLES)
|
||||
foreach(name ${names})
|
||||
# Make lowercase variants for case-insensitive comparing
|
||||
string(TOLOWER "${name}" lc_name)
|
||||
string(TOLOWER "${regex}" lc_regex)
|
||||
|
||||
if(lc_name MATCHES "${lc_regex}")
|
||||
message("${name}=${${name}}")
|
||||
endif()
|
||||
endforeach()
|
||||
endfunction()
|
||||
|
||||
|
||||
###
|
||||
# Print content of variable.
|
||||
#
|
||||
# print_var(PROJECT_NAME)
|
||||
# print_var("PROJECT_NAME") # the same result as previous line
|
||||
#
|
||||
function(print_var name)
|
||||
|
||||
# Show nice output for not defined or empty variables
|
||||
if(NOT DEFINED ${name})
|
||||
set(value " is not defined.")
|
||||
elseif("${${name}}" STREQUAL "")
|
||||
set(value " is defined but empty.")
|
||||
else()
|
||||
set(value "=${${name}}")
|
||||
endif()
|
||||
|
||||
message("${name}${value}")
|
||||
endfunction()
|
||||
|
||||
###
|
||||
# Prints included directories
|
||||
#
|
||||
function(print_include_dirs)
|
||||
get_property(dirs DIRECTORY PROPERTY INCLUDE_DIRECTORIES)
|
||||
foreach(dir ${dirs})
|
||||
message("${dir}")
|
||||
endforeach()
|
||||
endfunction()
|
||||
|
||||
###
|
||||
# Prints link directories
|
||||
#
|
||||
function(print_link_dirs)
|
||||
get_property(dirs DIRECTORY PROPERTY LINK_DIRECTORIES)
|
||||
foreach(dir ${dirs})
|
||||
message("${dir}")
|
||||
endforeach()
|
||||
endfunction()
|
||||
|
||||
###
|
||||
# Prints compile definitions
|
||||
#
|
||||
function(print_compile_definitions)
|
||||
get_property(defs DIRECTORY PROPERTY COMPILE_DEFINITIONS)
|
||||
foreach(def ${defs})
|
||||
message("${def}")
|
||||
endforeach()
|
||||
endfunction()
|
||||
|
||||
|
||||
###
|
||||
# Prints target include directories
|
||||
#
|
||||
function(print_target_include_dirs target)
|
||||
get_property(dirs TARGET ${target} PROPERTY INTERFACE_INCLUDE_DIRECTORIES)
|
||||
foreach(dir ${dirs})
|
||||
message("${dir}")
|
||||
endforeach()
|
||||
endfunction()
|
||||
|
||||
###
|
||||
# Prints target compile definitions
|
||||
#
|
||||
function(print_target_compile_definitions target)
|
||||
get_property(defs TARGET ${target} PROPERTY INTERFACE_COMPILE_DEFINITIONS)
|
||||
foreach(def ${defs})
|
||||
message("${def}")
|
||||
endforeach()
|
||||
endfunction()
|
||||
|
||||
###
|
||||
# Prints target link libraries
|
||||
#
|
||||
function(print_target_link_libraries target)
|
||||
get_property(defs TARGET ${target} PROPERTY INTERFACE_LINK_LIBRARIES)
|
||||
foreach(def ${defs})
|
||||
message("${def}")
|
||||
endforeach()
|
||||
endfunction()
|
||||
|
||||
###
|
||||
# Prints Qt5 module plugins
|
||||
#
|
||||
function(print_qt_module_plugins module)
|
||||
foreach(plugin ${Qt5${module}_PLUGINS})
|
||||
get_target_property(loc ${plugin} LOCATION)
|
||||
message("Plugin ${plugin} is at location ${loc}")
|
||||
endforeach()
|
||||
endfunction()
|
||||
@@ -0,0 +1,154 @@
|
||||
# Copyright (c) 2012 Petroules Corporation. All rights reserved.
|
||||
#
|
||||
# Redistribution and use in source and binary forms, with or without modification, are permitted provided that the
|
||||
# following conditions are met:
|
||||
#
|
||||
# Redistributions of source code must retain the above copyright notice, this list of conditions and the following
|
||||
# disclaimer.
|
||||
#
|
||||
# Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following
|
||||
# disclaimer in the documentation and/or other materials provided with the distribution.
|
||||
#
|
||||
# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED
|
||||
# WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A
|
||||
# PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR
|
||||
# ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED
|
||||
# TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
|
||||
# HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
|
||||
# NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
|
||||
# POSSIBILITY OF SUCH DAMAGE.
|
||||
|
||||
# Based on the Qt 5 processor detection code, so should be very accurate
|
||||
# https://qt.gitorious.org/qt/qtbase/blobs/master/src/corelib/global/qprocessordetection.h
|
||||
# Currently handles arm (v5, v6, v7), x86 (32/64), ia64, and ppc (32/64)
|
||||
|
||||
# Regarding POWER/PowerPC, just as is noted in the Qt source,
|
||||
# "There are many more known variants/revisions that we do not handle/detect."
|
||||
|
||||
set(archdetect_c_code "
|
||||
#if defined(__arm__) || defined(__TARGET_ARCH_ARM)
|
||||
#if defined(__ARM_ARCH_7__) \\
|
||||
|| defined(__ARM_ARCH_7A__) \\
|
||||
|| defined(__ARM_ARCH_7R__) \\
|
||||
|| defined(__ARM_ARCH_7M__) \\
|
||||
|| (defined(__TARGET_ARCH_ARM) && __TARGET_ARCH_ARM-0 >= 7)
|
||||
#error cmake_ARCH armv7
|
||||
#elif defined(__ARM_ARCH_6__) \\
|
||||
|| defined(__ARM_ARCH_6J__) \\
|
||||
|| defined(__ARM_ARCH_6T2__) \\
|
||||
|| defined(__ARM_ARCH_6Z__) \\
|
||||
|| defined(__ARM_ARCH_6K__) \\
|
||||
|| defined(__ARM_ARCH_6ZK__) \\
|
||||
|| defined(__ARM_ARCH_6M__) \\
|
||||
|| (defined(__TARGET_ARCH_ARM) && __TARGET_ARCH_ARM-0 >= 6)
|
||||
#error cmake_ARCH armv6
|
||||
#elif defined(__ARM_ARCH_5TEJ__) \\
|
||||
|| (defined(__TARGET_ARCH_ARM) && __TARGET_ARCH_ARM-0 >= 5)
|
||||
#error cmake_ARCH armv5
|
||||
#else
|
||||
#error cmake_ARCH arm
|
||||
#endif
|
||||
#elif defined(__i386) || defined(__i386__) || defined(_M_IX86)
|
||||
#error cmake_ARCH i386
|
||||
#elif defined(__x86_64) || defined(__x86_64__) || defined(__amd64) || defined(_M_X64)
|
||||
#error cmake_ARCH x86_64
|
||||
#elif defined(__ia64) || defined(__ia64__) || defined(_M_IA64)
|
||||
#error cmake_ARCH ia64
|
||||
#elif defined(__ppc__) || defined(__ppc) || defined(__powerpc__) \\
|
||||
|| defined(_ARCH_COM) || defined(_ARCH_PWR) || defined(_ARCH_PPC) \\
|
||||
|| defined(_M_MPPC) || defined(_M_PPC)
|
||||
#if defined(__ppc64__) || defined(__powerpc64__) || defined(__64BIT__)
|
||||
#error cmake_ARCH ppc64
|
||||
#else
|
||||
#error cmake_ARCH ppc
|
||||
#endif
|
||||
#endif
|
||||
|
||||
#error cmake_ARCH unknown
|
||||
")
|
||||
|
||||
# Set ppc_support to TRUE before including this file or ppc and ppc64
|
||||
# will be treated as invalid architectures since they are no longer supported by Apple
|
||||
|
||||
function(target_architecture output_var)
|
||||
if(APPLE AND CMAKE_OSX_ARCHITECTURES)
|
||||
# On OS X we use CMAKE_OSX_ARCHITECTURES *if* it was set
|
||||
# First let's normalize the order of the values
|
||||
|
||||
# Note that it's not possible to compile PowerPC applications if you are using
|
||||
# the OS X SDK version 10.6 or later - you'll need 10.4/10.5 for that, so we
|
||||
# disable it by default
|
||||
# See this page for more information:
|
||||
# http://stackoverflow.com/questions/5333490/how-can-we-restore-ppc-ppc64-as-well-as-full-10-4-10-5-sdk-support-to-xcode-4
|
||||
|
||||
# Architecture defaults to i386 or ppc on OS X 10.5 and earlier, depending on the CPU type detected at runtime.
|
||||
# On OS X 10.6+ the default is x86_64 if the CPU supports it, i386 otherwise.
|
||||
|
||||
foreach(osx_arch ${CMAKE_OSX_ARCHITECTURES})
|
||||
if("${osx_arch}" STREQUAL "ppc" AND ppc_support)
|
||||
set(osx_arch_ppc TRUE)
|
||||
elseif("${osx_arch}" STREQUAL "i386")
|
||||
set(osx_arch_i386 TRUE)
|
||||
elseif("${osx_arch}" STREQUAL "x86_64")
|
||||
set(osx_arch_x86_64 TRUE)
|
||||
elseif("${osx_arch}" STREQUAL "ppc64" AND ppc_support)
|
||||
set(osx_arch_ppc64 TRUE)
|
||||
else()
|
||||
message(FATAL_ERROR "Invalid OS X arch name: ${osx_arch}")
|
||||
endif()
|
||||
endforeach()
|
||||
|
||||
# Now add all the architectures in our normalized order
|
||||
if(osx_arch_ppc)
|
||||
list(APPEND ARCH ppc)
|
||||
endif()
|
||||
|
||||
if(osx_arch_i386)
|
||||
list(APPEND ARCH i386)
|
||||
endif()
|
||||
|
||||
if(osx_arch_x86_64)
|
||||
list(APPEND ARCH x86_64)
|
||||
endif()
|
||||
|
||||
if(osx_arch_ppc64)
|
||||
list(APPEND ARCH ppc64)
|
||||
endif()
|
||||
else()
|
||||
file(WRITE "${CMAKE_BINARY_DIR}/arch.c" "${archdetect_c_code}")
|
||||
|
||||
enable_language(C)
|
||||
|
||||
# Detect the architecture in a rather creative way...
|
||||
# This compiles a small C program which is a series of ifdefs that selects a
|
||||
# particular #error preprocessor directive whose message string contains the
|
||||
# target architecture. The program will always fail to compile (both because
|
||||
# file is not a valid C program, and obviously because of the presence of the
|
||||
# #error preprocessor directives... but by exploiting the preprocessor in this
|
||||
# way, we can detect the correct target architecture even when cross-compiling,
|
||||
# since the program itself never needs to be run (only the compiler/preprocessor)
|
||||
try_run(
|
||||
run_result_unused
|
||||
compile_result_unused
|
||||
"${CMAKE_BINARY_DIR}"
|
||||
"${CMAKE_BINARY_DIR}/arch.c"
|
||||
COMPILE_OUTPUT_VARIABLE ARCH
|
||||
CMAKE_FLAGS CMAKE_OSX_ARCHITECTURES=${CMAKE_OSX_ARCHITECTURES}
|
||||
)
|
||||
|
||||
# Parse the architecture name from the compiler output
|
||||
string(REGEX MATCH "cmake_ARCH ([a-zA-Z0-9_]+)" ARCH "${ARCH}")
|
||||
|
||||
# Get rid of the value marker leaving just the architecture name
|
||||
string(REPLACE "cmake_ARCH " "" ARCH "${ARCH}")
|
||||
|
||||
# If we are compiling with an unknown architecture this variable should
|
||||
# already be set to "unknown" but in the case that it's empty (i.e. due
|
||||
# to a typo in the code), then set it to unknown
|
||||
if (NOT ARCH)
|
||||
set(ARCH unknown)
|
||||
endif()
|
||||
endif()
|
||||
|
||||
set(${output_var} "${ARCH}" PARENT_SCOPE)
|
||||
endfunction()
|
||||
@@ -0,0 +1,26 @@
|
||||
if(SYSTEM_LINUX OR SYSTEM_MACOSX)
|
||||
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11")
|
||||
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -std=gnu99")
|
||||
elseif(SYSTEM_WINDOWS)
|
||||
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -D_UNICODE -DUNICODE -DWIN32 -D_WIN32 -D_CRT_SECURE_NO_WARNINGS -DBOOST_ALL_NO_LIB")
|
||||
|
||||
# Do not show some warnings. We turned off the same warnings as MongoDB do
|
||||
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /wd4355 /wd4800 /wd4267 /wd4244 /wd4290 /wd4068 /wd4351")
|
||||
|
||||
# The /MP option can reduce the total time to compile the source files. This option
|
||||
# causes the compiler to create one or more copies of itself, each in a separate process.
|
||||
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /MP")
|
||||
|
||||
set(CMAKE_CXX_STANDARD_LIBRARIES "${CMAKE_CXX_STANDARD_LIBRARIES} psapi.lib bcrypt.lib Iphlpapi.lib dbghelp.lib ws2_32.lib winmm.lib version.lib")
|
||||
endif()
|
||||
|
||||
set(PROJECT_NAME "Robomongo")
|
||||
set(PROJECT_NAME_TITLE ${PROJECT_NAME})
|
||||
set(PROJECT_DOMAIN "www.robomongo.org")
|
||||
set(PROJECT_COMPANYNAME "Paralect")
|
||||
set(PROJECT_COPYRIGHT "Copyright (C) 2013-2015 ${PROJECT_COMPANYNAME} All Rights Reserved.")
|
||||
set(PROJECT_COMPANYNAME_DOMAIN "www.paralect.com")
|
||||
set(PROJECT_GITHUB_FORK "www.github.com/paralect/robomongo")
|
||||
set(PROJECT_GITHUB_ISSUES "www.github.com/paralect/robomongo/issues")
|
||||
|
||||
string(TOLOWER ${PROJECT_NAME} PROJECT_NAME_LOWERCASE)
|
||||
@@ -1,82 +0,0 @@
|
||||
IF(${CMAKE_SYSTEM_NAME} MATCHES "Linux")
|
||||
ADD_DEFINITIONS(-DOS_LINUX -DOS_POSIX)
|
||||
ELSEIF(${CMAKE_SYSTEM_NAME} MATCHES "Darwin")
|
||||
ADD_DEFINITIONS(-DOS_MAC -DOS_POSIX)
|
||||
ELSEIF(${CMAKE_SYSTEM_NAME} MATCHES "Windows")
|
||||
ADD_DEFINITIONS(-D_WIN32 -DOS_WIN)
|
||||
ELSE()
|
||||
MESSAGE(FATAL_ERROR "Not supported OS: "${CMAKE_SYSTEM_NAME})
|
||||
ENDIF()
|
||||
|
||||
MESSAGE(STATUS "CMAKE_SYSTEM_PROCESSOR: ${CMAKE_SYSTEM_PROCESSOR}")
|
||||
MESSAGE(STATUS "CMAKE_SYSTEM: ${CMAKE_SYSTEM}")
|
||||
|
||||
IF (CMAKE_BUILD_TYPE)
|
||||
STRING(TOUPPER ${CMAKE_BUILD_TYPE} CMAKE_BUILD_TYPE_STABLE)
|
||||
MESSAGE(STATUS "CMAKE_BUILD_TYPE: ${CMAKE_BUILD_TYPE_STABLE}")
|
||||
ENDIF(CMAKE_BUILD_TYPE)
|
||||
|
||||
SET(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} "${CMAKE_CURRENT_LIST_DIR}/")
|
||||
IF(NOT CMAKE_DEBUG_POSTFIX)
|
||||
SET(CMAKE_DEBUG_POSTFIX d)
|
||||
ENDIF()
|
||||
INCLUDE(cmake/projecthelper.cmake)
|
||||
INCLUDE(cmake/utils.cmake)
|
||||
|
||||
IF(BOOST_ENABLED)
|
||||
ADD_DEFINITIONS(-DBOOST_SUPPORT_ENABLED)
|
||||
INCLUDE(${CMAKE_CURRENT_LIST_DIR}/integrate-boost.cmake)
|
||||
SET(Boost_USE_MULTITHREADED ON)
|
||||
SET(Boost_USE_STATIC_LIBS ON)
|
||||
ENDIF(BOOST_ENABLED)
|
||||
|
||||
IF(UNICODE_ENABLED)
|
||||
IF(MINGW)
|
||||
SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -municode")
|
||||
ENDIF(MINGW)
|
||||
ADD_DEFINITIONS(-DUNICODE -D_UNICODE)
|
||||
ENDIF(UNICODE_ENABLED)
|
||||
|
||||
IF(QT_ENABLED)
|
||||
INCLUDE(${CMAKE_CURRENT_LIST_DIR}/integrate-qt.cmake)
|
||||
ADD_DEFINITIONS(-DQT_SUPPORT_ENABLED)
|
||||
ENDIF(QT_ENABLED)
|
||||
|
||||
IF(DEVELOPER_ENABLE_TESTS)
|
||||
INCLUDE(cmake/testing.cmake)
|
||||
SETUP_TESTING()
|
||||
ENDIF(DEVELOPER_ENABLE_TESTS)
|
||||
|
||||
MACRO(ADD_APP_EXECUTABLE_MSVC PROJECT_NAME SOURCES LIBS)
|
||||
ADD_EXECUTABLE(${PROJECT_NAME} ${DESKTOP_TARGET} ${SOURCES})
|
||||
TARGET_LINK_LIBRARIES(${PROJECT_NAME} ${LIBS})
|
||||
ENDMACRO()
|
||||
|
||||
MACRO(ADD_APP_LIBRARY_MSVC PROJECT_NAME SOURCES LIBS)
|
||||
ADD_LIBRARY(${PROJECT_NAME} STATIC ${SOURCES})
|
||||
TARGET_LINK_LIBRARIES(${PROJECT_NAME} ${LIBS} )
|
||||
ENDMACRO()
|
||||
|
||||
MACRO(ADD_APP_EXECUTABLE PROJECT_NAME SOURCES LIBS)
|
||||
SET(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/${BUILD_TYPE}/build)
|
||||
SET(TARGET ${PROJECT_NAME})
|
||||
ADD_EXECUTABLE(${TARGET} ${DESKTOP_TARGET} ${SOURCES})
|
||||
TARGET_LINK_LIBRARIES(${TARGET} ${LIBS})
|
||||
IF ("${CMAKE_BUILD_TYPE_STABLE}" STREQUAL "RELEASE")
|
||||
SET_TARGET_PROPERTIES(${TARGET} PROPERTIES COMPILE_FLAGS "${CMAKE_CXX_FLAGS_RELEASE}")
|
||||
ELSE()
|
||||
SET_TARGET_PROPERTIES(${TARGET} PROPERTIES COMPILE_FLAGS "${CMAKE_CXX_FLAGS_DEBUG}")
|
||||
ENDIF()
|
||||
ENDMACRO()
|
||||
|
||||
MACRO(ADD_APP_LIBRARY PROJECT_NAME SOURCES LIBS)
|
||||
SET(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/${BUILD_TYPE}/build)
|
||||
SET(TARGET ${PROJECT_NAME})
|
||||
ADD_LIBRARY(${TARGET} STATIC ${SOURCES})
|
||||
TARGET_LINK_LIBRARIES(${TARGET} ${LIBS})
|
||||
IF ("${CMAKE_BUILD_TYPE_STABLE}" STREQUAL "RELEASE")
|
||||
SET_TARGET_PROPERTIES(${TARGET} PROPERTIES COMPILE_FLAGS "${CMAKE_CXX_FLAGS_RELEASE}")
|
||||
ELSE()
|
||||
SET_TARGET_PROPERTIES(${TARGET} PROPERTIES COMPILE_FLAGS "${CMAKE_CXX_FLAGS_DEBUG}")
|
||||
ENDIF()
|
||||
ENDMACRO()
|
||||
@@ -0,0 +1,55 @@
|
||||
What is this?
|
||||
-------------
|
||||
|
||||
Files in this folder are read by FindMongoDB.cmake script.
|
||||
|
||||
We link with MongoDB shell using objects instead of static libs, because:
|
||||
|
||||
> We require the use of the 'object' mode for release builds because it is the only linking
|
||||
> model that works across all of our platforms. We would like to ensure that all of our
|
||||
> released artifacts are built with the same known-good-everywhere model.
|
||||
|
||||
This is a quote from root SConstruct file in MongoDB repository.
|
||||
|
||||
It is possible to build MongoDB shell in the following way:
|
||||
|
||||
$ scons mongo --link-model=static
|
||||
|
||||
Than we will have produced static libs that we can link with. But in release mode MongoDB
|
||||
SConstruct file do not support static link mode by default. This command will *not* work:
|
||||
|
||||
$ scons mongo --release --link-model=static
|
||||
|
||||
We decided to use object link mode even for debug builds, in order to use single mode across
|
||||
all platforms and configurations.
|
||||
|
||||
How did you receive content for this files?
|
||||
-------------------------------------------
|
||||
|
||||
First we build MongoDB shell with the following command:
|
||||
|
||||
$ scons mongo -j8 --release
|
||||
|
||||
Than we remove compiled `mongo` and run the same command again to see only final link command:
|
||||
|
||||
$ rm build/opt/mongo/mongo
|
||||
$ scons mongo -j8 --release > release-link-command.txt
|
||||
|
||||
And finally we manually copy/paste list of objects to `<platform>-release.objects` file. Make sure
|
||||
that they are single-line files.
|
||||
|
||||
Almost the same steps we are doing for debug builds:
|
||||
|
||||
$ scons mongo -j8 --dbg
|
||||
$ rm build/debug/mongo/mongo
|
||||
$ scons mongo -j8 --dbg > debug-link-command.txt
|
||||
|
||||
And list of objects is copied to `<platform>-debug.objects` file.
|
||||
|
||||
We found, that on Linux (Ubuntu 14.10), list of debug objects differ from list of release objects only
|
||||
by two files. File `debugallocation.o` is linked in debug mode, but not in release.
|
||||
File `debugallocation.o` is linked in release mode, but not in debug. Both are located
|
||||
in `third_party/gperftools-2.2/src` folder. In any way, we keep separate lists of object files
|
||||
for both configurations. Still we need to test that objects are the same even across different
|
||||
versions of Linux.
|
||||
|
||||
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
@@ -1,23 +0,0 @@
|
||||
macro(VersionConf prjName from_file to_file iconname)
|
||||
SET(COMPANYNAME "\"${PROJECT_COMPANYNAME}\"")
|
||||
SET(filecontent "
|
||||
SET(ICON_FILE ${ICON_FILE})
|
||||
SET(MAJOR_VER ${MAJOR} )
|
||||
SET(MINOR_VER1 ${MINOR})
|
||||
SET(MINOR_VER2 ${PATCH})
|
||||
SET(PRODUCTNAME ${prjName})
|
||||
SET(COMPANYNAME ${COMPANYNAME})
|
||||
SET(PRODUCTDOMAIN ${PROJECT_DOMAIN})
|
||||
SET(SHORTPRODUCTNAME ${prjName})
|
||||
SET(ICONNAME ${iconname})
|
||||
SET(PRODUCTCOPYRIGHT ${PROJECT_COPYRIGHT})
|
||||
CONFIGURE_FILE(${from_file} ${to_file})
|
||||
")
|
||||
FILE(WRITE "${CMAKE_CURRENT_BINARY_DIR}/versionConfFile.cmake" "${filecontent}")
|
||||
ADD_CUSTOM_TARGET(VersionConf ALL DEPENDS ${to_file})
|
||||
ADD_CUSTOM_COMMAND(OUTPUT ${to_file} COMMAND ${CMAKE_COMMAND} -DSOURCE_DIR=${CMAKE_CURRENT_SOURCE_DIR} -P ${CMAKE_CURRENT_BINARY_DIR}/versionConfFile.cmake)
|
||||
SET_SOURCE_FILES_PROPERTIES(${to_file} PROPERTIES GENERATED TRUE
|
||||
#HEADER_FILE_ONLY TRUE
|
||||
)
|
||||
ADD_DEPENDENCIES(${prjName} VersionConf)
|
||||
endmacro(VersionConf)
|
||||
@@ -0,0 +1,50 @@
|
||||
Building Robomongo Shell
|
||||
========================
|
||||
|
||||
Robomongo uses [modified version](https://github.com/paralect/robomongo-shell/tree/roboshell-v3.2) of MongoDB that we call Robomongo Shell. Before you can build Robomongo, you have to build Robomongo Shell. The following instructions are applicable only for Mac OS X and Linux. For Windows instructions please check [Building Robomongo on Windows](BuildingRobomongoOnWindows.md).
|
||||
|
||||
Build for Mac OS X or Linux
|
||||
---------------------------
|
||||
|
||||
1. Clone Robomongo Shell and checkout to `roboshell-v3.2` branch:
|
||||
|
||||
```sh
|
||||
$ git clone https://github.com/paralect/robomongo-shell.git
|
||||
$ cd robomongo-shell
|
||||
$ git checkout roboshell-v3.2
|
||||
```
|
||||
|
||||
2. Build Robomongo Shell:
|
||||
|
||||
```sh
|
||||
$ bin/build
|
||||
```
|
||||
|
||||
Done! Now you can continue with [Step 2](BuildingRobomongo.md#step-2) and build Robomongo
|
||||
with embedded MongoDB 3.2 shell (that you've just built).
|
||||
|
||||
|
||||
<br/>
|
||||
#### Advanced helper commands
|
||||
|
||||
The following commands are needed only if you are planning to develop or deeper understand
|
||||
Robomongo or Robomongo Shell build processes.
|
||||
|
||||
Clean build files for release mode (folder `build/opt` will be removed):
|
||||
|
||||
$ bin/clean
|
||||
|
||||
Here is a command that is executed by `bin/build` script:
|
||||
|
||||
$ scons mongo -j8 --release --osx-version-min=10.9
|
||||
|
||||
Argument `--osx-version-min` is required only for Mac OS.
|
||||
|
||||
Build MongoDB shell in debug mode:
|
||||
|
||||
$ scons mongo -j8 --dbg
|
||||
|
||||
Clear builds:
|
||||
|
||||
$ scons -c mongo # clears release build
|
||||
$ scons -c --dbg mongo # clears debug build
|
||||
@@ -0,0 +1,52 @@
|
||||
Building Robomongo
|
||||
==================
|
||||
|
||||
#### Step 1.
|
||||
|
||||
Download and build Robomongo Shell (our fork of MongoDB).
|
||||
Refer to [Building Robomongo Shell](BuildingMongoDB.md) document.
|
||||
|
||||
#### Step 2.
|
||||
|
||||
Download Robomongo:
|
||||
|
||||
$ git clone https://github.com/paralect/robomongo
|
||||
$ cd robomongo
|
||||
|
||||
Set special environment variable `ROBOMONGO_CMAKE_PREFIX_PATH` to point to a set of
|
||||
directories:
|
||||
|
||||
1. Location of Qt 5 SDK
|
||||
2. Location of Robomongo Shell (built in "Step 1")
|
||||
|
||||
Separate directories by semicolon `;` (not colon):
|
||||
|
||||
$ export ROBOMONGO_CMAKE_PREFIX_PATH="/path/to/qt-5.5/5.5/clang_64;/path/to/robomongo-shell"
|
||||
|
||||
Run configuration step:
|
||||
|
||||
$ bin/configure
|
||||
|
||||
And finally, build Robomongo:
|
||||
|
||||
$ bin/build
|
||||
|
||||
<br>
|
||||
## Helper commands
|
||||
|
||||
Execute just built Robomongo:
|
||||
|
||||
$ bin/run
|
||||
|
||||
Clean build files (in order to start build from scratch):
|
||||
|
||||
$ bin/clean
|
||||
|
||||
Install Robomongo to `build/release/install` folder:
|
||||
|
||||
$ bin/install
|
||||
|
||||
Create package for your OS in `build/release/package` folder:
|
||||
|
||||
$ bin/pack
|
||||
|
||||
@@ -0,0 +1,132 @@
|
||||
Building Robomongo for Windows
|
||||
==============================
|
||||
|
||||
Prerequisites
|
||||
-------------
|
||||
|
||||
#### 0. Git
|
||||
|
||||
Download Git installer from http://git-scm.com (we are using Git-2.7.0-64-bit).
|
||||
|
||||
When you'll see "Adjusting your PATH environment" wizard page, select
|
||||
"Use Git from the Windows Command Prompt" option. This will allow to
|
||||
execute Git from both Windows Command Prompt and Bash. This is required,
|
||||
because both MongoDB and Robomongo uses `git` command during build process
|
||||
which must be perfomed from Windows Command Prompt (not Bash).
|
||||
|
||||
On "Configuring the line ending conversion" wizard page, select "Checkout
|
||||
Windows-style, commit Unix-style line ending" option. This is a common mode
|
||||
for cross-platform projects and required by both MongoDB and Robomongo.
|
||||
|
||||
All other Git installer options are not important (use defaults).
|
||||
|
||||
If you are using SSH clone url, start SSH agent and add your private key
|
||||
with this commands in Git Bash:
|
||||
|
||||
$ eval `ssh-agent` # starts ssh agent
|
||||
$ ssh-add ~/.ssh/mykey # add your key (which can be in any folder)
|
||||
|
||||
#### 1. Visual Studio 2013 (i.e. MSVC12) Update 4 or newer
|
||||
|
||||
We use Visual Studio 2013 Update 5, and recommend to use this version to save
|
||||
time for Qt compilation. Currently prebuilt binaries for Qt are available
|
||||
from official Qt site. But you can use any newer version and compile Qt library
|
||||
yourself.
|
||||
|
||||
If you already have VS2013, you can download Update 5 here:
|
||||
https://www.microsoft.com/en-us/download/details.aspx?id=48129
|
||||
|
||||
Update 4 or newer version is required to compile MongoDB.
|
||||
|
||||
#### 2. ActivePython 2.7
|
||||
|
||||
Download ActivePython from http://www.activestate.com/activepython/downloads
|
||||
|
||||
Download MSI x64 version. Use default settings in installation wizard.
|
||||
This installer will add path to `python.exe` to your `PATH` variable.
|
||||
|
||||
#### 3. Scons 2.3.4
|
||||
|
||||
Download Scons from http://scons.org/tag/releases.html
|
||||
|
||||
Use ZIP archive, not MSI (we use scons-2.3.4.zip)
|
||||
|
||||
Open Command Prompt, navigate to Scons directory and run:
|
||||
|
||||
$ setup.py install
|
||||
|
||||
This command will make `scons` command accessible from Command Prompt
|
||||
|
||||
#### 4. CMake
|
||||
Download CMake from https://cmake.org/download (we use cmake-3.3.2-win32-x86.exe)
|
||||
|
||||
Use installer package, it will allow you to configure your PATH variable and `cmake`
|
||||
command will be available from Command Prompt. For this set "Add CMake to the system
|
||||
PATH for current user" in the installer wizard page.
|
||||
|
||||
#### 5. Qt 5.5
|
||||
|
||||
Download Qt from http://www.qt.io/download-open-source/ (we use Qt Online installer)
|
||||
|
||||
When installing Qt, only one component is required by Robomongo:
|
||||
|
||||
Qt 5.5
|
||||
[x] msvc2013 64-bit.
|
||||
|
||||
This components contains prebuilt 64-bit binaries for Visual Studio 2013.
|
||||
|
||||
You may uncheck all other components to download as little as possible.
|
||||
|
||||
|
||||
|
||||
## Build Robomongo Shell (fork of MongoDB)
|
||||
|
||||
Refer to MongoDB documentation for additional information:
|
||||
https://docs.mongodb.org/manual/contributors/tutorial/build-mongodb-from-source/#windows-specific-instructions
|
||||
|
||||
Open VS2013 x64 Native Tools Command Prompt and navigate to `robomongo-shell` folder.
|
||||
|
||||
Build shell:
|
||||
|
||||
> bin\build
|
||||
|
||||
Note that backslash is used (`\`), and not forward slash (`/`).
|
||||
|
||||
Clean build files:
|
||||
|
||||
> bin\clean
|
||||
|
||||
|
||||
## Build Robomongo
|
||||
|
||||
Set special environment variable `ROBOMONGO_CMAKE_PREFIX_PATH` to point to set of
|
||||
directories:
|
||||
|
||||
1. Location of Qt SDK
|
||||
2. Location of Robomongo Shell
|
||||
|
||||
Separate directories by semicolon `;` (not colon). You can do this in Command Prompt:
|
||||
|
||||
> setx ROBOMONGO_CMAKE_PREFIX_PATH "d:\Qt-5\5.5\msvc2013_64;d:\Projects\robomongo-shell"
|
||||
|
||||
Reopen your Command Prompt to make this variable available.
|
||||
|
||||
Run configuration step:
|
||||
|
||||
> bin\configure
|
||||
|
||||
And finally, build Robomongo:
|
||||
|
||||
> bin\build
|
||||
|
||||
|
||||
#### Helper commands
|
||||
|
||||
Clean build files (in order to start build from scratch):
|
||||
|
||||
> bin\clean
|
||||
|
||||
Install Robomongo to `build\Release\install` folder:
|
||||
|
||||
> bin\install
|
||||
|
||||
@@ -0,0 +1,49 @@
|
||||
Runtime Dependencies
|
||||
====================
|
||||
|
||||
This information is for maintainers. If you want to just use Robomongo - download
|
||||
prebuild packages for your platform.
|
||||
|
||||
Runtime dependencies that are not privided by platforms but required by Robomongo are:
|
||||
|
||||
1. Qt libraries
|
||||
2. Qt plugins
|
||||
|
||||
Diagnostic of dependencies
|
||||
--------------------------
|
||||
|
||||
##### Linux
|
||||
|
||||
View dependencies of executable or shared library:
|
||||
|
||||
$ ldd robomongo
|
||||
|
||||
View RPATH or RUNPATH records of executable or shared library:
|
||||
|
||||
$ objdump -x bin/robomongo | grep "RPATH\|RUNPATH"
|
||||
|
||||
For Robomongo binary it should be `$ORIGIN/../lib`
|
||||
|
||||
##### Mac OS X
|
||||
|
||||
Show dependencies of executable or shared library:
|
||||
|
||||
$ otool -L robomongo
|
||||
|
||||
View LC_RPATH records of executable or shared library:
|
||||
|
||||
$ otool -l robomongo | grep -C2 RPATH
|
||||
|
||||
(option `-C2` asks grep to output 2 context lines before and after the match)
|
||||
|
||||
For Robomongo binary it should be `$executable_path/../Frameworks`
|
||||
|
||||
|
||||
Diagnostic of Qt plugins
|
||||
------------------------
|
||||
|
||||
Run Robomongo in the following way to see how plugins are resolved:
|
||||
|
||||
$ QT_DEBUG_PLUGINS=1 ./robomongo
|
||||
|
||||
|
||||
@@ -1,388 +0,0 @@
|
||||
# -*- Mode: makefile -*-
|
||||
#
|
||||
# ***** BEGIN LICENSE BLOCK *****
|
||||
# Version: MPL 1.1/GPL 2.0/LGPL 2.1
|
||||
#
|
||||
# The contents of this file are subject to the Mozilla Public License Version
|
||||
# 1.1 (the "License"); you may not use this file except in compliance with
|
||||
# the License. You may obtain a copy of the License at
|
||||
# http://www.mozilla.org/MPL/
|
||||
#
|
||||
# Software distributed under the License is distributed on an "AS IS" basis,
|
||||
# WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
|
||||
# for the specific language governing rights and limitations under the
|
||||
# License.
|
||||
#
|
||||
# The Original Code is Mozilla Communicator client code, released
|
||||
# March 31, 1998.
|
||||
#
|
||||
# The Initial Developer of the Original Code is
|
||||
# Netscape Communications Corporation.
|
||||
# Portions created by the Initial Developer are Copyright (C) 1998
|
||||
# the Initial Developer. All Rights Reserved.
|
||||
#
|
||||
# Contributor(s):
|
||||
#
|
||||
# Alternatively, the contents of this file may be used under the terms of
|
||||
# either of the GNU General Public License Version 2 or later (the "GPL"),
|
||||
# or the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
|
||||
# in which case the provisions of the GPL or the LGPL are applicable instead
|
||||
# of those above. If you wish to allow use of your version of this file only
|
||||
# under the terms of either the GPL or the LGPL, and not to allow others to
|
||||
# use your version of this file under the terms of the MPL, indicate your
|
||||
# decision by deleting the provisions above and replace them with the notice
|
||||
# and other provisions required by the GPL or the LGPL. If you do not delete
|
||||
# the provisions above, a recipient may use your version of this file under
|
||||
# the terms of any one of the MPL, the GPL or the LGPL.
|
||||
#
|
||||
# ***** END LICENSE BLOCK *****
|
||||
|
||||
DEPTH = ../..
|
||||
topsrcdir = @top_srcdir@
|
||||
srcdir = @srcdir@
|
||||
VPATH = @srcdir@
|
||||
|
||||
include $(DEPTH)/config/autoconf.mk
|
||||
|
||||
MODULE = js
|
||||
LIBRARY_NAME = mozjs
|
||||
LIB_IS_C_ONLY = 1
|
||||
GRE_MODULE = 1
|
||||
|
||||
ifeq (,$(filter-out WINNT WINCE,$(OS_ARCH)))
|
||||
LIBRARY_NAME = js$(MOZ_BITS)$(VERSION_NUMBER)
|
||||
RESFILE = js$(MOZ_BITS)40.res
|
||||
endif
|
||||
|
||||
PACKAGE_FILE = js.pkg
|
||||
|
||||
# JavaScript must be built shared, even for static builds, as it is used by
|
||||
# other modules which are always built shared. Failure to do so results in
|
||||
# the js code getting copied into xpinstall and jsd as well as mozilla-bin,
|
||||
# and then the static data cells used for locking no longer work.
|
||||
|
||||
ifndef JS_STATIC_BUILD
|
||||
FORCE_SHARED_LIB = 1
|
||||
endif
|
||||
|
||||
CSRCS = \
|
||||
jsapi.c \
|
||||
jsarena.c \
|
||||
jsarray.c \
|
||||
jsatom.c \
|
||||
jsbool.c \
|
||||
jscntxt.c \
|
||||
jsdate.c \
|
||||
jsdbgapi.c \
|
||||
jsdhash.c \
|
||||
jsdtoa.c \
|
||||
jsemit.c \
|
||||
jsexn.c \
|
||||
jsfun.c \
|
||||
jsgc.c \
|
||||
jshash.c \
|
||||
jsinterp.c \
|
||||
jsiter.c \
|
||||
jslock.c \
|
||||
jslog2.c \
|
||||
jslong.c \
|
||||
jsmath.c \
|
||||
jsnum.c \
|
||||
jsobj.c \
|
||||
jsopcode.c \
|
||||
jsparse.c \
|
||||
jsprf.c \
|
||||
jsregexp.c \
|
||||
jsscan.c \
|
||||
jsscope.c \
|
||||
jsscript.c \
|
||||
jsstr.c \
|
||||
jsutil.c \
|
||||
jsxdrapi.c \
|
||||
jsxml.c \
|
||||
prmjtime.c \
|
||||
$(NULL)
|
||||
|
||||
EXPORTS = \
|
||||
jsautocfg.h \
|
||||
jsautokw.h \
|
||||
js.msg \
|
||||
jsapi.h \
|
||||
jsarray.h \
|
||||
jsarena.h \
|
||||
jsatom.h \
|
||||
jsbit.h \
|
||||
jsbool.h \
|
||||
jsclist.h \
|
||||
jscntxt.h \
|
||||
jscompat.h \
|
||||
jsconfig.h \
|
||||
jsdate.h \
|
||||
jsdbgapi.h \
|
||||
jsdhash.h \
|
||||
jsemit.h \
|
||||
jsfun.h \
|
||||
jsgc.h \
|
||||
jshash.h \
|
||||
jsinterp.h \
|
||||
jsiter.h \
|
||||
jslock.h \
|
||||
jslong.h \
|
||||
jsmath.h \
|
||||
jsnum.h \
|
||||
jsobj.h \
|
||||
jsopcode.tbl \
|
||||
jsopcode.h \
|
||||
jsosdep.h \
|
||||
jsotypes.h \
|
||||
jsparse.h \
|
||||
jsprf.h \
|
||||
jsproto.tbl \
|
||||
jsprvtd.h \
|
||||
jspubtd.h \
|
||||
jsregexp.h \
|
||||
jsscan.h \
|
||||
jsscope.h \
|
||||
jsscript.h \
|
||||
jsstddef.h \
|
||||
jsstr.h \
|
||||
jstypes.h \
|
||||
jsutil.h \
|
||||
jsxdrapi.h \
|
||||
jsxml.h \
|
||||
$(NULL)
|
||||
|
||||
ifeq (,$(filter-out WINNT WINCE,$(OS_ARCH)))
|
||||
EXPORTS += jscpucfg.h
|
||||
endif
|
||||
|
||||
JS_SAFE_ARENA = 1
|
||||
|
||||
DASH_R = -r
|
||||
|
||||
include $(topsrcdir)/config/config.mk
|
||||
|
||||
EXTRA_DSO_LDOPTS += $(NSPR_LIBS)
|
||||
|
||||
# When using gcc the assembly is inlined in the C-file (see jslock.c)
|
||||
ifeq ($(OS_ARCH),SunOS)
|
||||
ifneq ($(OS_TEST),i86pc)
|
||||
ifndef GNU_CC
|
||||
ASFILES = lock_$(OS_ARCH).s
|
||||
endif
|
||||
endif
|
||||
endif
|
||||
|
||||
ifndef BUILD_OPT
|
||||
MOCHAFILE = 1
|
||||
endif
|
||||
|
||||
ifndef NSBUILDROOT
|
||||
JSJAVA_STUBHEADERS = \
|
||||
-I$(topsrcdir)/sun-java/include/_gen \
|
||||
-I$(topsrcdir)/sun-java/netscape/javascript/_jri \
|
||||
-I$(topsrcdir)/sun-java/netscape/security/_jri
|
||||
else
|
||||
JSJAVA_STUBHEADERS = -I$(JRI_GEN_DIR) -I$(JDK_GEN_DIR)
|
||||
endif
|
||||
|
||||
JSJAVA_CFLAGS = \
|
||||
-I$(topsrcdir)/sun-java/md-include \
|
||||
-I$(topsrcdir)/sun-java/include \
|
||||
$(JSJAVA_STUBHEADERS)
|
||||
|
||||
# Define keyword generator before rules.mk, see bug 323979 comment 50
|
||||
|
||||
HOST_SIMPLE_PROGRAMS += host_jskwgen$(HOST_BIN_SUFFIX)
|
||||
GARBAGE += jsautokw.h host_jskwgen$(HOST_BIN_SUFFIX)
|
||||
|
||||
include $(topsrcdir)/config/rules.mk
|
||||
|
||||
DEFINES += -DEXPORT_JS_API
|
||||
|
||||
INCLUDES += -I$(srcdir)
|
||||
|
||||
# MSVC '-Gy' cc flag and '/OPT:REF' linker flag cause JS_GetArgument and
|
||||
# JS_GetLocalVariable to be folded to the same address by the linker,
|
||||
# leading to a crash on startup. See bug 151066. So, in optimized builds,
|
||||
# add the /OPT:NOICF flag, which turns off 'identical COMDAT folding'.
|
||||
#
|
||||
# N.B.: 'identical COMDAT folding' that folds functions whose addresses
|
||||
# are taken violates the ISO C and C++ standards.
|
||||
ifndef MOZ_DEBUG
|
||||
ifeq (_WINNT,$(GNU_CC)_$(OS_ARCH))
|
||||
LDFLAGS += -OPT:NOICF
|
||||
endif
|
||||
endif
|
||||
|
||||
GARBAGE += jscpucfg.o jsautocfg.h jsautocfg.tmp jscpucfg
|
||||
|
||||
ifneq (,$(CROSS_COMPILE)$(filter-out WINNT,$(OS_ARCH)))
|
||||
TARGETS += jscpucfg$(HOST_BIN_SUFFIX)
|
||||
endif
|
||||
|
||||
ifdef JS_SAFE_ARENA
|
||||
DEFINES += -DJS_USE_SAFE_ARENA
|
||||
endif
|
||||
|
||||
ifdef JS_THREADSAFE
|
||||
DEFINES += -DJS_THREADSAFE
|
||||
endif
|
||||
|
||||
ifdef JS_NO_THIN_LOCKS
|
||||
DEFINES += -DJS_USE_ONLY_NSPR_LOCKS
|
||||
endif
|
||||
|
||||
ifdef JS_VERSION
|
||||
DEFINES += -DJS_VERSION=$(JS_VERSION)
|
||||
endif
|
||||
|
||||
ifneq ($(findstring -L,$(NSPR_LIBS)),)
|
||||
NSPR_STATIC_PATH = $(subst -L,,$(findstring -L,$(NSPR_LIBS)))
|
||||
else
|
||||
NSPR_STATIC_PATH = $(DIST)/lib
|
||||
endif
|
||||
|
||||
LDFLAGS += $(pathsubst -l%,$(NSPR_STATIC_PATH)/%.a,$(NSPR_LIBS))
|
||||
|
||||
# BeOS and HP-UX do not require the extra linking of "-lm"
|
||||
ifeq (,$(filter BeOS HP-UX WINNT WINCE OpenVMS,$(OS_ARCH)))
|
||||
LDFLAGS += -lm
|
||||
endif
|
||||
|
||||
# Prevent floating point errors caused by VC++ optimizations
|
||||
ifeq ($(OS_ARCH)_$(GNU_CC),WINNT_)
|
||||
ifeq (,$(filter-out 1200 1300 1310,$(_MSC_VER)))
|
||||
CFLAGS += -Op
|
||||
else
|
||||
CFLAGS += -fp:precise
|
||||
endif
|
||||
endif # WINNT
|
||||
|
||||
ifeq ($(OS_ARCH),FreeBSD)
|
||||
LDFLAGS += -pthread
|
||||
endif
|
||||
ifeq ($(OS_ARCH),IRIX)
|
||||
ifdef USE_N32
|
||||
DASH_R += -n32
|
||||
endif
|
||||
endif
|
||||
ifeq ($(OS_ARCH),Linux)
|
||||
LDFLAGS += -ldl
|
||||
endif
|
||||
ifeq ($(OS_ARCH),OSF1)
|
||||
LDFLAGS += -lc_r
|
||||
endif
|
||||
ifeq ($(OS_ARCH),SunOS)
|
||||
ifeq ($(TARGET_CPU),sparc)
|
||||
|
||||
ifdef JS_ULTRASPARC_OPTS
|
||||
DEFINES += -DULTRA_SPARC
|
||||
ifdef GNU_CC
|
||||
CFLAGS += -Wa,-xarch=v8plus,-DULTRA_SPARC,-P,-L,-D_ASM,-D__STDC__=0
|
||||
CXXFLAGS += -Wa,-xarch=v8plus,-DULTRA_SPARC,-P,-L,-D_ASM,-D__STDC__=0,-K,PIC
|
||||
else
|
||||
ASFLAGS += -xarch=v8plus -DULTRA_SPARC -P -L -D_ASM -D__STDC__=0 -K PIC
|
||||
endif # GNU_CC
|
||||
endif # JS_ULTRASPARC_OPTS
|
||||
|
||||
endif
|
||||
ifeq ($(OS_RELEASE),4.1)
|
||||
LDFLAGS += -ldl -lnsl
|
||||
else
|
||||
LDFLAGS += -lposix4 -ldl -lnsl -lsocket
|
||||
endif
|
||||
endif
|
||||
|
||||
ifeq ($(OS_ARCH),IRIX)
|
||||
ifndef GNU_CC
|
||||
_COMPILE_CFLAGS = $(patsubst -O%,-O1,$(COMPILE_CFLAGS))
|
||||
jsapi.o jsarena.o jsarray.o jsatom.o jsemit.o jsfun.o jsinterp.o jsregexp.o jsparse.o jsopcode.o jsscript.o: %.o: %.c Makefile.in
|
||||
$(REPORT_BUILD)
|
||||
@$(MAKE_DEPS_AUTO)
|
||||
$(CC) -o $@ -c $(_COMPILE_CFLAGS) $<
|
||||
endif
|
||||
endif
|
||||
|
||||
# An AIX Optimization bug causes PR_dtoa() & JS_dtoa to produce wrong result.
|
||||
# This suppresses optimization for this single compilation unit.
|
||||
ifeq ($(OS_ARCH),AIX)
|
||||
jsatom.o: jsatom.c Makefile.in
|
||||
$(REPORT_BUILD)
|
||||
@$(MAKE_DEPS_AUTO)
|
||||
$(CC) -o $@ -c $(filter-out $(MOZ_OPTIMIZE_FLAGS), $(COMPILE_CFLAGS)) $<
|
||||
jsdtoa.o: jsdtoa.c Makefile.in
|
||||
$(REPORT_BUILD)
|
||||
@$(MAKE_DEPS_AUTO)
|
||||
$(CC) -o $@ -c $(filter-out $(MOZ_OPTIMIZE_FLAGS), $(COMPILE_CFLAGS)) $<
|
||||
endif
|
||||
|
||||
jsopcode.h jsopcode.c: jsopcode.tbl
|
||||
|
||||
ifeq (,$(CROSS_COMPILE)$(filter-out WINNT,$(OS_ARCH)))
|
||||
jsautocfg.h:
|
||||
touch $@
|
||||
else
|
||||
ifeq ($(OS_ARCH),WINCE)
|
||||
jsautocfg.h:
|
||||
touch $@
|
||||
else
|
||||
jsautocfg.h: jscpucfg$(HOST_BIN_SUFFIX)
|
||||
@rm -f $@ jsautocfg.tmp
|
||||
./jscpucfg > jsautocfg.tmp
|
||||
mv jsautocfg.tmp $@
|
||||
endif
|
||||
endif
|
||||
|
||||
# jscpucfg is a strange target
|
||||
# Needs to be built with the host compiler but needs to include
|
||||
# the mdcpucfg for the target so it needs the appropriate target defines
|
||||
ifdef HOST_NSPR_MDCPUCFG
|
||||
HOST_CC := $(HOST_CC) -DMDCPUCFG=$(TARGET_NSPR_MDCPUCFG)
|
||||
HOST_CFLAGS := $(patsubst -DXP_%,,$(HOST_CFLAGS))
|
||||
endif
|
||||
|
||||
ifdef CROSS_COMPILE
|
||||
# jscpucfg needs to know when it's supposed to produce a config for the target
|
||||
JSCPUCFG_DEFINES = $(ACDEFINES)
|
||||
|
||||
# This is incredibly hacky. Darwin NSPR uses the same MDCPUCFG for multiple
|
||||
# processors, and determines which processor to configure for based on
|
||||
# #ifdef i386. This macro is among the NSPR defines, but is also automatically
|
||||
# defined by the compiler when building for i386. It therefore needs to be
|
||||
# defined here if targeting i386, and explicitly undefined otherwise.
|
||||
ifeq ($(OS_ARCH),Darwin)
|
||||
ifeq ($(TARGET_CPU),powerpc)
|
||||
JSCPUCFG_DEFINES += -Ui386
|
||||
else
|
||||
JSCPUCFG_DEFINES += -Di386=1
|
||||
endif
|
||||
endif
|
||||
endif
|
||||
|
||||
ifeq ($(OS_ARCH),QNX)
|
||||
ifneq ($(OS_TARGET),NTO)
|
||||
# QNX's compiler apparently can't build a binary directly from a source file.
|
||||
jscpucfg.o: jscpucfg.c Makefile.in
|
||||
$(HOST_CC) $(HOST_CFLAGS) -c $(JSCPUCFG_DEFINES) $(DEFINES) $(NSPR_CFLAGS) -o $@ $<
|
||||
|
||||
jscpucfg: jscpucfg.o
|
||||
$(HOST_CC) $(HOST_CFLAGS) $(JSCPUCFG_DEFINES) $(DEFINES) -o $@ $<
|
||||
endif
|
||||
else
|
||||
ifeq ($(OS_ARCH),WINCE)
|
||||
jscpucfg$(HOST_BIN_SUFFIX):
|
||||
echo no need to build jscpucfg $<
|
||||
else
|
||||
jscpucfg$(HOST_BIN_SUFFIX): jscpucfg.c Makefile.in
|
||||
$(HOST_CC) $(HOST_CFLAGS) $(JSCPUCFG_DEFINES) $(DEFINES) $(NSPR_CFLAGS) $(OUTOPTION)$@ $<
|
||||
endif
|
||||
endif
|
||||
|
||||
# Extra dependancies and rules for keyword switch code
|
||||
jsscan.$(OBJ_SUFFIX): jsautokw.h jskeyword.tbl
|
||||
|
||||
host_jskwgen.$(OBJ_SUFFIX): jsconfig.h jskeyword.tbl
|
||||
|
||||
jsautokw.h: host_jskwgen$(HOST_BIN_SUFFIX)
|
||||
./host_jskwgen$(HOST_BIN_SUFFIX) $@
|
||||
@@ -1,375 +0,0 @@
|
||||
# -*- Mode: makefile -*-
|
||||
# vim: ft=make
|
||||
#
|
||||
# ***** BEGIN LICENSE BLOCK *****
|
||||
# Version: MPL 1.1/GPL 2.0/LGPL 2.1
|
||||
#
|
||||
# The contents of this file are subject to the Mozilla Public License Version
|
||||
# 1.1 (the "License"); you may not use this file except in compliance with
|
||||
# the License. You may obtain a copy of the License at
|
||||
# http://www.mozilla.org/MPL/
|
||||
#
|
||||
# Software distributed under the License is distributed on an "AS IS" basis,
|
||||
# WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
|
||||
# for the specific language governing rights and limitations under the
|
||||
# License.
|
||||
#
|
||||
# The Original Code is Mozilla Communicator client code, released
|
||||
# March 31, 1998.
|
||||
#
|
||||
# The Initial Developer of the Original Code is
|
||||
# Netscape Communications Corporation.
|
||||
# Portions created by the Initial Developer are Copyright (C) 1998
|
||||
# the Initial Developer. All Rights Reserved.
|
||||
#
|
||||
# Contributor(s):
|
||||
# Michael Ang <mang@subcarrier.org>
|
||||
# Kevin Buhr <buhr@stat.wisc.edu>
|
||||
#
|
||||
# Alternatively, the contents of this file may be used under the terms of
|
||||
# either of the GNU General Public License Version 2 or later (the "GPL"),
|
||||
# or the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
|
||||
# in which case the provisions of the GPL or the LGPL are applicable instead
|
||||
# of those above. If you wish to allow use of your version of this file only
|
||||
# under the terms of either the GPL or the LGPL, and not to allow others to
|
||||
# use your version of this file under the terms of the MPL, indicate your
|
||||
# decision by deleting the provisions above and replace them with the notice
|
||||
# and other provisions required by the GPL or the LGPL. If you do not delete
|
||||
# the provisions above, a recipient may use your version of this file under
|
||||
# the terms of any one of the MPL, the GPL or the LGPL.
|
||||
#
|
||||
# ***** END LICENSE BLOCK *****
|
||||
|
||||
#
|
||||
# JSRef GNUmake makefile.
|
||||
#
|
||||
# Note: dependency rules are missing for some files (some
|
||||
# .h, all .msg, etc.) Re-make clean if in doubt.
|
||||
#
|
||||
|
||||
|
||||
DEPTH = .
|
||||
|
||||
include config.mk
|
||||
|
||||
#NS_USE_NATIVE = 1
|
||||
|
||||
ifdef NARCISSUS
|
||||
DEFINES += -DNARCISSUS
|
||||
endif
|
||||
|
||||
# Look in OBJDIR to find jsautocfg.h and jsautokw.h
|
||||
INCLUDES += -I$(OBJDIR)
|
||||
|
||||
ifdef JS_THREADSAFE
|
||||
DEFINES += -DJS_THREADSAFE
|
||||
INCLUDES += -I$(DIST)/include/nspr
|
||||
ifdef USE_MSVC
|
||||
OTHER_LIBS += $(DIST)/lib/libnspr$(NSPR_LIBSUFFIX).lib
|
||||
else
|
||||
OTHER_LIBS += -L$(DIST)/lib -lnspr$(NSPR_LIBSUFFIX)
|
||||
endif
|
||||
endif
|
||||
|
||||
ifdef JS_NO_THIN_LOCKS
|
||||
DEFINES += -DJS_USE_ONLY_NSPR_LOCKS
|
||||
endif
|
||||
|
||||
ifdef JS_HAS_FILE_OBJECT
|
||||
DEFINES += -DJS_HAS_FILE_OBJECT
|
||||
endif
|
||||
|
||||
#
|
||||
# XCFLAGS may be set in the environment or on the gmake command line
|
||||
#
|
||||
CFLAGS += $(OPTIMIZER) $(OS_CFLAGS) $(DEFINES) $(INCLUDES) $(XCFLAGS)
|
||||
|
||||
LDFLAGS = $(XLDFLAGS)
|
||||
|
||||
ifndef NO_LIBM
|
||||
LDFLAGS += -lm
|
||||
endif
|
||||
|
||||
# Prevent floating point errors caused by VC++ optimizations
|
||||
ifeq ($(OS_ARCH),WINNT)
|
||||
_MSC_VER = $(shell $(CC) 2>&1 | sed -n 's/.*Compiler Version \([0-9]*\)\.\([0-9]*\).*/\1\2/p')
|
||||
ifeq (,$(filter-out 1200 1300 1310,$(_MSC_VER)))
|
||||
CFLAGS += -Op
|
||||
else
|
||||
CFLAGS += -fp:precise
|
||||
endif
|
||||
endif # WINNT
|
||||
|
||||
#
|
||||
# Ask perl what flags it was built with, so we can build js with similar flags
|
||||
# and link properly. Viva gmake.
|
||||
#
|
||||
ifdef JS_PERLCONNECT
|
||||
DEFINES += -DPERLCONNECT -D_GNU_SOURCE
|
||||
|
||||
PERLCFLAGS := $(shell perl -MExtUtils::Embed -e ccopts)
|
||||
PERLLDFLAGS := $(shell perl -MExtUtils::Embed -e ldopts)
|
||||
|
||||
# perl erroneously reports compiler flag -rdynamic (interpreted by ld
|
||||
# as -r) when it really meant -export-dynamic.
|
||||
PERLLDFLAGS := $(subst -rdynamic,-export-dynamic,$(PERLLDFLAGS))
|
||||
|
||||
CFLAGS += $(PERLCFLAGS)
|
||||
#LDFLAGS += $(PERLLDFLAGS) #PH removed this assgnment
|
||||
INCLUDES += -I. #needed for perlconnect/jsperl.c
|
||||
endif
|
||||
|
||||
#
|
||||
# Server-related changes :
|
||||
#
|
||||
ifdef NES40
|
||||
DEFINES += -DNES40
|
||||
endif
|
||||
|
||||
#
|
||||
# Line editing support.
|
||||
# Define JS_READLINE or JS_EDITLINE to enable line editing in the
|
||||
# js command-line interpreter.
|
||||
#
|
||||
ifdef JS_READLINE
|
||||
# For those platforms with the readline library installed.
|
||||
DEFINES += -DEDITLINE
|
||||
PROG_LIBS += -lreadline -ltermcap
|
||||
else
|
||||
ifdef JS_EDITLINE
|
||||
# Use the editline library, built locally.
|
||||
PREDIRS += editline
|
||||
DEFINES += -DEDITLINE
|
||||
PROG_LIBS += editline/$(OBJDIR)/libedit.a
|
||||
endif
|
||||
endif
|
||||
|
||||
# For purify
|
||||
PURE_CFLAGS = -DXP_UNIX $(OPTIMIZER) $(PURE_OS_CFLAGS) $(DEFINES) \
|
||||
$(INCLUDES) $(XCFLAGS)
|
||||
|
||||
#
|
||||
# JS file lists
|
||||
#
|
||||
JS_HFILES = \
|
||||
jsarray.h \
|
||||
jsatom.h \
|
||||
jsbool.h \
|
||||
jsconfig.h \
|
||||
jscntxt.h \
|
||||
jsdate.h \
|
||||
jsemit.h \
|
||||
jsexn.h \
|
||||
jsfun.h \
|
||||
jsgc.h \
|
||||
jsinterp.h \
|
||||
jsiter.h \
|
||||
jslibmath.h \
|
||||
jslock.h \
|
||||
jsmath.h \
|
||||
jsnum.h \
|
||||
jsobj.h \
|
||||
jsopcode.h \
|
||||
jsparse.h \
|
||||
jsarena.h \
|
||||
jsclist.h \
|
||||
jsdhash.h \
|
||||
jsdtoa.h \
|
||||
jshash.h \
|
||||
jslong.h \
|
||||
jsosdep.h \
|
||||
jstypes.h \
|
||||
jsprvtd.h \
|
||||
jspubtd.h \
|
||||
jsregexp.h \
|
||||
jsscan.h \
|
||||
jsscope.h \
|
||||
jsscript.h \
|
||||
jsstr.h \
|
||||
jsxdrapi.h \
|
||||
jsxml.h \
|
||||
$(NULL)
|
||||
|
||||
API_HFILES = \
|
||||
jsapi.h \
|
||||
jsdbgapi.h \
|
||||
$(NULL)
|
||||
|
||||
OTHER_HFILES = \
|
||||
jsbit.h \
|
||||
jscompat.h \
|
||||
jscpucfg.h \
|
||||
jsotypes.h \
|
||||
jsstddef.h \
|
||||
prmjtime.h \
|
||||
resource.h \
|
||||
jsopcode.tbl \
|
||||
jsproto.tbl \
|
||||
js.msg \
|
||||
jsshell.msg \
|
||||
jskeyword.tbl \
|
||||
$(NULL)
|
||||
|
||||
ifndef PREBUILT_CPUCFG
|
||||
OTHER_HFILES += $(OBJDIR)/jsautocfg.h
|
||||
endif
|
||||
OTHER_HFILES += $(OBJDIR)/jsautokw.h
|
||||
|
||||
HFILES = $(JS_HFILES) $(API_HFILES) $(OTHER_HFILES)
|
||||
|
||||
JS_CFILES = \
|
||||
jsapi.c \
|
||||
jsarena.c \
|
||||
jsarray.c \
|
||||
jsatom.c \
|
||||
jsbool.c \
|
||||
jscntxt.c \
|
||||
jsdate.c \
|
||||
jsdbgapi.c \
|
||||
jsdhash.c \
|
||||
jsdtoa.c \
|
||||
jsemit.c \
|
||||
jsexn.c \
|
||||
jsfun.c \
|
||||
jsgc.c \
|
||||
jshash.c \
|
||||
jsinterp.c \
|
||||
jsiter.c \
|
||||
jslock.c \
|
||||
jslog2.c \
|
||||
jslong.c \
|
||||
jsmath.c \
|
||||
jsnum.c \
|
||||
jsobj.c \
|
||||
jsopcode.c \
|
||||
jsparse.c \
|
||||
jsprf.c \
|
||||
jsregexp.c \
|
||||
jsscan.c \
|
||||
jsscope.c \
|
||||
jsscript.c \
|
||||
jsstr.c \
|
||||
jsutil.c \
|
||||
jsxdrapi.c \
|
||||
jsxml.c \
|
||||
prmjtime.c \
|
||||
$(NULL)
|
||||
|
||||
ifdef JS_LIVECONNECT
|
||||
DIRS += liveconnect
|
||||
endif
|
||||
|
||||
ifdef JS_PERLCONNECT
|
||||
JS_CFILES += perlconnect/jsperl.c
|
||||
endif
|
||||
|
||||
ifdef JS_HAS_FILE_OBJECT
|
||||
JS_CFILES += jsfile.c
|
||||
JS_HFILES += jsfile.h
|
||||
endif
|
||||
|
||||
LIB_CFILES = $(JS_CFILES)
|
||||
LIB_ASFILES := $(wildcard *_$(OS_ARCH).s)
|
||||
PROG_CFILES = js.c
|
||||
|
||||
ifdef USE_MSVC
|
||||
LIBRARY = $(OBJDIR)/js32.lib
|
||||
SHARED_LIBRARY = $(OBJDIR)/js32.dll
|
||||
PROGRAM = $(OBJDIR)/js.exe
|
||||
else
|
||||
LIBRARY = $(OBJDIR)/libjs.a
|
||||
SHARED_LIBRARY = $(OBJDIR)/libjs.$(SO_SUFFIX)
|
||||
PROGRAM = $(OBJDIR)/js
|
||||
ifdef JS_PERLCONNECT
|
||||
PROG_LIBS += $(PERLLDFLAGS)
|
||||
endif
|
||||
endif
|
||||
|
||||
include rules.mk
|
||||
|
||||
MOZ_DEPTH = ../..
|
||||
include jsconfig.mk
|
||||
|
||||
nsinstall-target:
|
||||
cd ../../config; $(MAKE) OBJDIR=$(OBJDIR) OBJDIR_NAME=$(OBJDIR)
|
||||
|
||||
#
|
||||
# Rules for keyword switch generation
|
||||
#
|
||||
|
||||
GARBAGE += $(OBJDIR)/jsautokw.h $(OBJDIR)/jskwgen$(HOST_BIN_SUFFIX)
|
||||
GARBAGE += $(OBJDIR)/jskwgen.$(OBJ_SUFFIX)
|
||||
|
||||
$(OBJDIR)/jsscan.$(OBJ_SUFFIX): $(OBJDIR)/jsautokw.h jskeyword.tbl
|
||||
|
||||
$(OBJDIR)/jskwgen.$(OBJ_SUFFIX): jskwgen.c jskeyword.tbl
|
||||
|
||||
$(OBJDIR)/jsautokw.h: $(OBJDIR)/jskwgen$(HOST_BIN_SUFFIX) jskeyword.tbl
|
||||
$(OBJDIR)/jskwgen$(HOST_BIN_SUFFIX) $@
|
||||
|
||||
ifdef USE_MSVC
|
||||
|
||||
$(OBJDIR)/jskwgen.obj: jskwgen.c jskeyword.tbl
|
||||
@$(MAKE_OBJDIR)
|
||||
$(CC) -Fo$(OBJDIR)/ -c $(CFLAGS) $<
|
||||
|
||||
$(OBJDIR)/jskwgen$(HOST_BIN_SUFFIX): $(OBJDIR)/jskwgen.$(OBJ_SUFFIX)
|
||||
link.exe -out:"$@" $(EXE_LINK_FLAGS) $^
|
||||
|
||||
else
|
||||
|
||||
$(OBJDIR)/jskwgen.o: jskwgen.c jskeyword.tbl
|
||||
@$(MAKE_OBJDIR)
|
||||
$(CC) -o $@ -c $(CFLAGS) $<
|
||||
|
||||
$(OBJDIR)/jskwgen$(HOST_BIN_SUFFIX): $(OBJDIR)/jskwgen.$(OBJ_SUFFIX)
|
||||
$(CC) -o $@ $(CFLAGS) $(LDFLAGS) $^
|
||||
|
||||
endif
|
||||
|
||||
#
|
||||
# JS shell executable
|
||||
#
|
||||
|
||||
ifdef USE_MSVC
|
||||
$(PROGRAM): $(PROG_OBJS) $(LIBRARY)
|
||||
link.exe -out:"$@" $(EXE_LINK_FLAGS) $^
|
||||
else
|
||||
$(PROGRAM): $(PROG_OBJS) $(LIBRARY)
|
||||
$(CC) -o $@ $(CFLAGS) $(PROG_OBJS) $(LIBRARY) $(LDFLAGS) $(OTHER_LIBS) \
|
||||
$(PROG_LIBS)
|
||||
endif
|
||||
|
||||
$(PROGRAM).pure: $(PROG_OBJS) $(LIBRARY)
|
||||
purify $(PUREFLAGS) \
|
||||
$(CC) -o $@ $(PURE_OS_CFLAGS) $(PROG_OBJS) $(LIBRARY) $(LDFLAGS) \
|
||||
$(OTHER_LIBS) $(PROG_LIBS)
|
||||
|
||||
ifndef PREBUILT_CPUCFG
|
||||
$(HFILES) $(CFILES): $(OBJDIR)/jsautocfg.h
|
||||
|
||||
$(OBJDIR)/jsautocfg.h: $(OBJDIR)/jscpucfg
|
||||
rm -f $@
|
||||
$(OBJDIR)/jscpucfg > $@
|
||||
|
||||
$(OBJDIR)/jscpucfg: $(OBJDIR)/jscpucfg.o
|
||||
$(CC) -o $@ $(OBJDIR)/jscpucfg.o
|
||||
|
||||
# Add to TARGETS for clobber rule
|
||||
TARGETS += $(OBJDIR)/jsautocfg.h $(OBJDIR)/jscpucfg \
|
||||
$(OBJDIR)/jscpucfg.o
|
||||
endif
|
||||
|
||||
#
|
||||
# Hardwire dependencies on jsopcode.tbl
|
||||
#
|
||||
jsopcode.h jsopcode.c: jsopcode.tbl
|
||||
|
||||
-include $(DEPENDENCIES)
|
||||
|
||||
TARNAME = jsref.tar
|
||||
TARFILES = files `cat files`
|
||||
|
||||
SUFFIXES: .i
|
||||
%.i: %.c
|
||||
$(CC) -C -E $(CFLAGS) $< > $*.i
|
||||
@@ -1,826 +0,0 @@
|
||||
<!-- ***** BEGIN LICENSE BLOCK *****
|
||||
- Version: MPL 1.1/GPL 2.0/LGPL 2.1
|
||||
-
|
||||
- The contents of this file are subject to the Mozilla Public License Version
|
||||
- 1.1 (the "License"); you may not use this file except in compliance with
|
||||
- the License. You may obtain a copy of the License at
|
||||
- http://www.mozilla.org/MPL/
|
||||
-
|
||||
- Software distributed under the License is distributed on an "AS IS" basis,
|
||||
- WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
|
||||
- for the specific language governing rights and limitations under the
|
||||
- License.
|
||||
-
|
||||
- The Original Code is Mozilla Communicator client code, released
|
||||
- March 31, 1998.
|
||||
-
|
||||
- The Initial Developer of the Original Code is
|
||||
- Netscape Communications Corporation.
|
||||
- Portions created by the Initial Developer are Copyright (C) 1998-1999
|
||||
- the Initial Developer. All Rights Reserved.
|
||||
-
|
||||
- Contributor(s):
|
||||
-
|
||||
- Alternatively, the contents of this file may be used under the terms of
|
||||
- either of the GNU General Public License Version 2 or later (the "GPL"),
|
||||
- or the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
|
||||
- in which case the provisions of the GPL or the LGPL are applicable instead
|
||||
- of those above. If you wish to allow use of your version of this file only
|
||||
- under the terms of either the GPL or the LGPL, and not to allow others to
|
||||
- use your version of this file under the terms of the MPL, indicate your
|
||||
- decision by deleting the provisions above and replace them with the notice
|
||||
- and other provisions required by the GPL or the LGPL. If you do not delete
|
||||
- the provisions above, a recipient may use your version of this file under
|
||||
- the terms of any one of the MPL, the GPL or the LGPL.
|
||||
-
|
||||
- ***** END LICENSE BLOCK ***** -->
|
||||
<!doctype html public "-//w3c//dtd html 4.0 transitional//en">
|
||||
<html>
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
|
||||
<meta name="GENERATOR" content="Mozilla/4.5 [en] (WinNT; I) [Netscape]">
|
||||
<title>JavaScript Reference Implementation (JSRef) README</title>
|
||||
</head>
|
||||
<body>
|
||||
|
||||
<h2>
|
||||
Table of Contents</h2>
|
||||
|
||||
<ul>
|
||||
<li>
|
||||
<a href="#Introduction">Introduction</a></li>
|
||||
|
||||
<li>
|
||||
<a href="#Build">Build conventions (standalone JS engine and shell)</a></li>
|
||||
|
||||
<li>
|
||||
<a href="#Debugging">Debugging notes</a></li>
|
||||
|
||||
<li>
|
||||
<a href="#Conventions">Naming and coding conventions</a></li>
|
||||
|
||||
<li>
|
||||
<a href="#JSAPI">Using the JS API</a></li>
|
||||
|
||||
<li>
|
||||
<a href="#Design">Design walk-through</a></li>
|
||||
|
||||
<li>
|
||||
<a href="#Resources">Additional Resources (links, API docs, and newsgroups)</a></li>
|
||||
|
||||
</ul>
|
||||
|
||||
<h2>
|
||||
<a NAME="Introduction"></a>Introduction</h2>
|
||||
This is the README file for the <span CLASS=LXRSHORTDESC>JavaScript
|
||||
Reference (JSRef, now better known as SpiderMonkey) implementation.</span>
|
||||
It consists of build conventions
|
||||
and instructions, source code conventions, a design walk-through, and a
|
||||
brief file-by-file description of the source.
|
||||
<p><span CLASS=LXRLONGDESC>JSRef builds a library or DLL containing the
|
||||
JavaScript runtime (compiler, interpreter, decompiler, garbage collector,
|
||||
atom manager, standard classes). It then compiles a small "shell" program
|
||||
and links that with the library to make an interpreter that can be used
|
||||
interactively and with test .js files to run scripts. The code has
|
||||
no dependencies on the rest of the Mozilla codebase.</span>
|
||||
<p><i>Quick start tip</i>: skip to "Using the JS API" below, build the
|
||||
js shell, and play with the object named "it" (start by setting 'it.noisy
|
||||
= true').
|
||||
<h2>
|
||||
<a NAME="Build"></a>Build conventions (standalone JS engine and shell)
|
||||
(OUT OF DATE!)</h2>
|
||||
These build directions refer only to building the standalone JavaScript
|
||||
engine and shell. To build within the browser, refer to the <a
|
||||
href="http://www.mozilla.org/build/">build
|
||||
directions</a> on the mozilla.org website.
|
||||
<p>By default, all platforms build a version of the JS engine that is <i>not</i>
|
||||
threadsafe. If you require thread-safety, you must also populate
|
||||
the <tt>mozilla/dist</tt> directory with <a href="http://www.mozilla.org/projects/nspr/reference/html/"
|
||||
>NSPR</a>
|
||||
headers and libraries. (NSPR implements a portable threading library,
|
||||
among other things. The source is downloadable via <a href="http://www.mozilla.org/cvs.html">CVS</a>
|
||||
from <tt><a href="http://lxr.mozilla.org/mozilla/source/nsprpub">mozilla/nsprpub</a></tt>.)
|
||||
Next, you must define <tt>JS_THREADSAFE</tt> when building the JS engine,
|
||||
either on the command-line (gmake/nmake) or in a universal header file.
|
||||
<h3>
|
||||
Windows</h3>
|
||||
|
||||
<ul>
|
||||
<li>
|
||||
Use MSVC 4.2 or 5.0.</li>
|
||||
|
||||
<li>
|
||||
For building from the IDE use <tt>js/src/js.mdp</tt>. (<tt>js.mdp</tt>
|
||||
is an MSVC4.2 project file, but if you load it into MSVC5, it will be converted
|
||||
to the newer project file format.) <font color="#CC0000">NOTE: makefile.win
|
||||
is an nmake file used only for building the JS-engine in the Mozilla browser.
|
||||
Don't attempt to use it to build the standalone JS-engine.</font></li>
|
||||
|
||||
<li>
|
||||
If you prefer to build from the command-line, use '<tt>nmake -f js.mak</tt>'</li>
|
||||
|
||||
<li>
|
||||
Executable shell <tt>js.exe</tt> and runtime library <tt>js32.dll</tt>
|
||||
are created in either <tt>js/src/Debug</tt> or <tt>js/src/Release</tt>.</li>
|
||||
</ul>
|
||||
|
||||
<h3>
|
||||
Macintosh</h3>
|
||||
|
||||
<ul>
|
||||
<li>
|
||||
Use CodeWarrior 3.x</li>
|
||||
|
||||
<li>
|
||||
Load the project file <tt>js:src:macbuild:JSRef.mcp </tt>and select "Make"
|
||||
from the menu.</li>
|
||||
</ul>
|
||||
|
||||
<h3>
|
||||
Unix</h3>
|
||||
|
||||
<ul>
|
||||
<li>
|
||||
Use '<tt>gmake -f Makefile.ref</tt>' to build. To compile optimized code,
|
||||
pass <tt>BUILD_OPT=1</tt> on the gmake command line or preset it in the
|
||||
environment or <tt>Makefile.ref</tt>. <font color="#CC0000">NOTE:
|
||||
Do not attempt to use Makefile to build the standalone JavaScript engine.
|
||||
This file is used only for building the JS-engine in the Mozilla browser.</font></li>
|
||||
|
||||
<li>
|
||||
<font color="#000000">Each platform on which JS is built must have a <tt>*.mk</tt>
|
||||
configuration file in the <tt>js/src/config</tt> directory. The configuration
|
||||
file specifies the compiler/linker to be used and allows for customization
|
||||
of command-line options. To date, the build system has been tested
|
||||
on Solaris, AIX, HP/UX, OSF, IRIX, x86 Linux and Windows NT.</font></li>
|
||||
|
||||
<li>
|
||||
<font color="#000000">Most platforms will work with either the vendor compiler
|
||||
</font>or
|
||||
<a href="ftp://prep.ai.mit.edu/pub/gnu">gcc</a>.
|
||||
(Except that HP builds only work using the native compiler. gcc won't
|
||||
link correctly with shared libraries on that platform. If someone
|
||||
knows a way to fix this, <a href="mailto:wynholds@netscape.com">let us
|
||||
know</a>.)</li>
|
||||
|
||||
<li>
|
||||
<font color="#000000">If you define <tt>JS_LIVECONNECT</tt>, gmake will
|
||||
descend into the liveconnect directory and build
|
||||
<a href="http://lxr.mozilla.org/mozilla/source/js/src/liveconnect/README.html">LiveConnect</a>
|
||||
after building the JS engine.</font></li>
|
||||
|
||||
<li>
|
||||
To build a binary drop (a zip'ed up file of headers, libraries, binaries),
|
||||
check out <tt>mozilla/config</tt> and <tt>mozilla/nsprpub/config</tt>.
|
||||
Use '<tt>gmake -f Makefile.ref nsinstall-target all export ship</tt>'</li>
|
||||
</ul>
|
||||
|
||||
<h2>
|
||||
<a NAME="Debugging"></a>Debugging notes</h2>
|
||||
|
||||
<ul>
|
||||
<li>
|
||||
To turn on GC instrumentation, define <tt>JS_GCMETER</tt>.</li>
|
||||
|
||||
<ul>
|
||||
<li>
|
||||
To turn on GC mark-phase debugging, useful to find leaked objects by their
|
||||
address, and to dump the GC heap, define <tt>GC_MARK_DEBUG</tt>.
|
||||
See the code in jsgc.c around the declaration and use of
|
||||
<tt>js_LiveThingToFind</tt>.</li>
|
||||
|
||||
<li>
|
||||
To turn on the arena package's instrumentation, define <tt>JS_ARENAMETER</tt>.</li>
|
||||
|
||||
<li>
|
||||
To turn on the hash table package's metering, define <tt>JS_HASHMETER</tt>.</li>
|
||||
</ul>
|
||||
|
||||
<h2>
|
||||
<a NAME="Conventions"></a>Naming and coding conventions</h2>
|
||||
|
||||
<ul>
|
||||
<li>
|
||||
Public function names begin with <tt>JS_</tt> followed by capitalized "intercaps",
|
||||
e.g. <tt>JS_NewObject</tt>.</li>
|
||||
|
||||
<li>
|
||||
Extern but library-private function names use a <tt>js_</tt> prefix and
|
||||
mixed case, e.g. <tt>js_SearchScope</tt>.</li>
|
||||
|
||||
<li>
|
||||
Most static function names have unprefixed, mixed-case names: <tt>GetChar</tt>.</li>
|
||||
|
||||
<li>
|
||||
But static native methods of JS objects have lowercase, underscore-separated
|
||||
or intercaps names, e.g., <tt>str_indexOf</tt>.</li>
|
||||
|
||||
<li>
|
||||
And library-private and static data use underscores, not intercaps (but
|
||||
library-private data do use a <tt>js_</tt> prefix).</li>
|
||||
|
||||
<li>
|
||||
Scalar type names are lowercase and js-prefixed: <tt>jsdouble</tt>.</li>
|
||||
|
||||
<li>
|
||||
Aggregate type names are JS-prefixed and mixed-case: <tt>JSObject.</tt></li>
|
||||
|
||||
<li>
|
||||
Macros are generally <tt>ALL_CAPS </tt>and underscored, to call out potential
|
||||
side effects, multiple uses of a formal argument, etc.</li>
|
||||
|
||||
<li>
|
||||
Four spaces of indentation per statement nesting level.</li>
|
||||
|
||||
<li>
|
||||
Tabs are taken to be eight spaces, and an Emacs magic comment at the top
|
||||
of each file tries to help. If you're using MSVC or similar, you'll want
|
||||
to set tab width to 8, and help convert these files to be space-filled.
|
||||
<font color="#CC0000">Do not add hard tabs to source files; do remove them
|
||||
whenever possible.</font></li>
|
||||
|
||||
<li>
|
||||
DLL entry points have their return type expanded within a <tt>JS_PUBLIC_API()</tt>
|
||||
macro call, to get the right Windows secret type qualifiers in the right
|
||||
places for all build variants.</li>
|
||||
|
||||
<li>
|
||||
Callback functions that might be called from a DLL are similarly macroized
|
||||
with <tt>JS_STATIC_DLL_CALLBACK</tt> (if the function otherwise would be
|
||||
static to hide its name) or <tt>JS_DLL_CALLBACK</tt> (this macro takes
|
||||
no type argument; it should be used after the return type and before the
|
||||
function name).</li>
|
||||
</ul>
|
||||
|
||||
<h2>
|
||||
<a NAME="JSAPI"></a>Using the JS API</h2>
|
||||
|
||||
<h4>
|
||||
Starting up</h4>
|
||||
|
||||
<pre><tt> /*
|
||||
* Tune this to avoid wasting space for shallow stacks, while saving on
|
||||
* malloc overhead/fragmentation for deep or highly-variable stacks.
|
||||
*/
|
||||
#define STACK_CHUNK_SIZE 8192
|
||||
|
||||
JSRuntime *rt;
|
||||
JSContext *cx;
|
||||
|
||||
/* You need a runtime and one or more contexts to do anything with JS. */
|
||||
rt = JS_NewRuntime(0x400000L);
|
||||
if (!rt)
|
||||
fail("can't create JavaScript runtime");
|
||||
cx = JS_NewContext(rt, STACK_CHUNK_SIZE);
|
||||
if (!cx)
|
||||
fail("can't create JavaScript context");
|
||||
|
||||
/*
|
||||
* The context definitely wants a global object, in order to have standard
|
||||
* classes and functions like Date and parseInt. See below for details on
|
||||
* JS_NewObject.
|
||||
*/
|
||||
JSObject *globalObj;
|
||||
|
||||
globalObj = JS_NewObject(cx, &my_global_class, 0, 0);
|
||||
JS_InitStandardClasses(cx, globalObj);</tt></pre>
|
||||
|
||||
<h4>
|
||||
Defining objects and properties</h4>
|
||||
|
||||
<pre><tt> /* Statically initialize a class to make "one-off" objects. */
|
||||
JSClass my_class = {
|
||||
"MyClass",
|
||||
|
||||
/* All of these can be replaced with the corresponding JS_*Stub
|
||||
function pointers. */
|
||||
my_addProperty, my_delProperty, my_getProperty, my_setProperty,
|
||||
my_enumerate, my_resolve, my_convert, my_finalize
|
||||
};
|
||||
|
||||
JSObject *obj;
|
||||
|
||||
/*
|
||||
* Define an object named in the global scope that can be enumerated by
|
||||
* for/in loops. The parent object is passed as the second argument, as
|
||||
* with all other API calls that take an object/name pair. The prototype
|
||||
* passed in is null, so the default object prototype will be used.
|
||||
*/
|
||||
obj = JS_DefineObject(cx, globalObj, "myObject", &my_class, NULL,
|
||||
JSPROP_ENUMERATE);
|
||||
|
||||
/*
|
||||
* Define a bunch of properties with a JSPropertySpec array statically
|
||||
* initialized and terminated with a null-name entry. Besides its name,
|
||||
* each property has a "tiny" identifier (MY_COLOR, e.g.) that can be used
|
||||
* in switch statements (in a common my_getProperty function, for example).
|
||||
*/
|
||||
enum my_tinyid {
|
||||
MY_COLOR, MY_HEIGHT, MY_WIDTH, MY_FUNNY, MY_ARRAY, MY_RDONLY
|
||||
};
|
||||
|
||||
static JSPropertySpec my_props[] = {
|
||||
{"color", MY_COLOR, JSPROP_ENUMERATE},
|
||||
{"height", MY_HEIGHT, JSPROP_ENUMERATE},
|
||||
{"width", MY_WIDTH, JSPROP_ENUMERATE},
|
||||
{"funny", MY_FUNNY, JSPROP_ENUMERATE},
|
||||
{"array", MY_ARRAY, JSPROP_ENUMERATE},
|
||||
{"rdonly", MY_RDONLY, JSPROP_READONLY},
|
||||
{0}
|
||||
};
|
||||
|
||||
JS_DefineProperties(cx, obj, my_props);
|
||||
|
||||
/*
|
||||
* Given the above definitions and call to JS_DefineProperties, obj will
|
||||
* need this sort of "getter" method in its class (my_class, above). See
|
||||
* the example for the "It" class in js.c.
|
||||
*/
|
||||
static JSBool
|
||||
my_getProperty(JSContext *cx, JSObject *obj, jsval id, jsval *vp)
|
||||
{
|
||||
if (JSVAL_IS_INT(id)) {
|
||||
switch (JSVAL_TO_INT(id)) {
|
||||
case MY_COLOR: *vp = . . .; break;
|
||||
case MY_HEIGHT: *vp = . . .; break;
|
||||
case MY_WIDTH: *vp = . . .; break;
|
||||
case MY_FUNNY: *vp = . . .; break;
|
||||
case MY_ARRAY: *vp = . . .; break;
|
||||
case MY_RDONLY: *vp = . . .; break;
|
||||
}
|
||||
}
|
||||
return JS_TRUE;
|
||||
}</tt></pre>
|
||||
|
||||
<h4>
|
||||
Defining functions</h4>
|
||||
|
||||
<pre><tt> /* Define a bunch of native functions first: */
|
||||
static JSBool
|
||||
my_abs(JSContext *cx, JSObject *obj, uintN argc, jsval *argv, jsval *rval)
|
||||
{
|
||||
jsdouble x, z;
|
||||
|
||||
if (!JS_ValueToNumber(cx, argv[0], &x))
|
||||
return JS_FALSE;
|
||||
z = (x < 0) ? -x : x;
|
||||
return JS_NewDoubleValue(cx, z, rval);
|
||||
}
|
||||
|
||||
. . .
|
||||
|
||||
/*
|
||||
* Use a JSFunctionSpec array terminated with a null name to define a
|
||||
* bunch of native functions.
|
||||
*/
|
||||
static JSFunctionSpec my_functions[] = {
|
||||
/* name native nargs */
|
||||
{"abs", my_abs, 1},
|
||||
{"acos", my_acos, 1},
|
||||
{"asin", my_asin, 1},
|
||||
. . .
|
||||
{0}
|
||||
};
|
||||
|
||||
/*
|
||||
* Pass a particular object to define methods for it alone. If you pass
|
||||
* a prototype object, the methods will apply to all instances past and
|
||||
* future of the prototype's class (see below for classes).
|
||||
*/
|
||||
JS_DefineFunctions(cx, globalObj, my_functions);</tt></pre>
|
||||
|
||||
<h4>
|
||||
Defining classes</h4>
|
||||
|
||||
<pre><tt> /*
|
||||
* This pulls together the above API elements by defining a constructor
|
||||
* function, a prototype object, and properties of the prototype and of
|
||||
* the constructor, all with one API call.
|
||||
*
|
||||
* Initialize a class by defining its constructor function, prototype, and
|
||||
* per-instance and per-class properties. The latter are called "static"
|
||||
* below by analogy to Java. They are defined in the constructor object's
|
||||
* scope, so that 'MyClass.myStaticProp' works along with 'new MyClass()'.
|
||||
*
|
||||
* JS_InitClass takes a lot of arguments, but you can pass null for any of
|
||||
* the last four if there are no such properties or methods.
|
||||
*
|
||||
* Note that you do not need to call JS_InitClass to make a new instance of
|
||||
* that class -- otherwise there would be a chicken-and-egg problem making
|
||||
* the global object -- but you should call JS_InitClass if you require a
|
||||
* constructor function for script authors to call via new, and/or a class
|
||||
* prototype object ('MyClass.prototype') for authors to extend with new
|
||||
* properties at run-time. In general, if you want to support multiple
|
||||
* instances that share behavior, use JS_InitClass.
|
||||
*/
|
||||
protoObj = JS_InitClass(cx, globalObj, NULL, &my_class,
|
||||
|
||||
/* native constructor function and min arg count */
|
||||
MyClass, 0,
|
||||
|
||||
/* prototype object properties and methods -- these
|
||||
will be "inherited" by all instances through
|
||||
delegation up the instance's prototype link. */
|
||||
my_props, my_methods,
|
||||
|
||||
/* class constructor properties and methods */
|
||||
my_static_props, my_static_methods);</tt></pre>
|
||||
|
||||
<h4>
|
||||
Running scripts</h4>
|
||||
|
||||
<pre><tt> /* These should indicate source location for diagnostics. */
|
||||
char *filename;
|
||||
uintN lineno;
|
||||
|
||||
/*
|
||||
* The return value comes back here -- if it could be a GC thing, you must
|
||||
* add it to the GC's "root set" with JS_AddRoot(cx, &thing) where thing
|
||||
* is a JSString *, JSObject *, or jsdouble *, and remove the root before
|
||||
* rval goes out of scope, or when rval is no longer needed.
|
||||
*/
|
||||
jsval rval;
|
||||
JSBool ok;
|
||||
|
||||
/*
|
||||
* Some example source in a C string. Larger, non-null-terminated buffers
|
||||
* can be used, if you pass the buffer length to JS_EvaluateScript.
|
||||
*/
|
||||
char *source = "x * f(y)";
|
||||
|
||||
ok = JS_EvaluateScript(cx, globalObj, source, strlen(source),
|
||||
filename, lineno, &rval);
|
||||
|
||||
if (ok) {
|
||||
/* Should get a number back from the example source. */
|
||||
jsdouble d;
|
||||
|
||||
ok = JS_ValueToNumber(cx, rval, &d);
|
||||
. . .
|
||||
}</tt></pre>
|
||||
|
||||
<h4>
|
||||
Calling functions</h4>
|
||||
|
||||
<pre><tt> /* Call a global function named "foo" that takes no arguments. */
|
||||
ok = JS_CallFunctionName(cx, globalObj, "foo", 0, 0, &rval);
|
||||
|
||||
jsval argv[2];
|
||||
|
||||
/* Call a function in obj's scope named "method", passing two arguments. */
|
||||
argv[0] = . . .;
|
||||
argv[1] = . . .;
|
||||
ok = JS_CallFunctionName(cx, obj, "method", 2, argv, &rval);</tt></pre>
|
||||
|
||||
<h4>
|
||||
Shutting down</h4>
|
||||
|
||||
<pre><tt> /* For each context you've created: */
|
||||
JS_DestroyContext(cx);
|
||||
|
||||
/* For each runtime: */
|
||||
JS_DestroyRuntime(rt);
|
||||
|
||||
/* And finally: */
|
||||
JS_ShutDown();</tt></pre>
|
||||
|
||||
<h4>
|
||||
Debugging API</h4>
|
||||
See the<tt> trap, untrap, watch, unwatch, line2pc</tt>, and <tt>pc2line</tt>
|
||||
commands in <tt>js.c</tt>. Also the (scant) comments in <i>jsdbgapi.h</i>.
|
||||
<h2>
|
||||
<a NAME="Design"></a>Design walk-through</h2>
|
||||
This section must be brief for now -- it could easily turn into a book.
|
||||
<h4>
|
||||
JS "JavaScript Proper"</h4>
|
||||
JS modules declare and implement the JavaScript compiler, interpreter,
|
||||
decompiler, GC and atom manager, and standard classes.
|
||||
<p>JavaScript uses untyped bytecode and runtime type tagging of data values.
|
||||
The <tt>jsval</tt> type is a signed machine word that contains either a
|
||||
signed integer value (if the low bit is set), or a type-tagged pointer
|
||||
or boolean value (if the low bit is clear). Tagged pointers all refer to
|
||||
8-byte-aligned things in the GC heap.
|
||||
<p>Objects consist of a possibly shared structural description, called
|
||||
the map or scope; and unshared property values in a vector, called the
|
||||
slots. Object properties are associated with nonnegative integers stored
|
||||
in <tt>jsval</tt>'s, or with atoms (unique string descriptors) if named
|
||||
by an identifier or a non-integral index expression.
|
||||
<p>Scripts contain bytecode, source annotations, and a pool of string,
|
||||
number, and identifier literals. Functions are objects that extend scripts
|
||||
or native functions with formal parameters, a literal syntax, and a distinct
|
||||
primitive type ("function").
|
||||
<p>The compiler consists of a recursive-descent parser and a random-logic
|
||||
rather than table-driven lexical scanner. Semantic and lexical feedback
|
||||
are used to disambiguate hard cases such as missing semicolons, assignable
|
||||
expressions ("lvalues" in C parlance), etc. The parser generates bytecode
|
||||
as it parses, using fixup lists for downward branches and code buffering
|
||||
and rewriting for exceptional cases such as for loops. It attempts no error
|
||||
recovery. The interpreter executes the bytecode of top-level scripts, and
|
||||
calls itself indirectly to interpret function bodies (which are also scripts).
|
||||
All state associated with an interpreter instance is passed through formal
|
||||
parameters to the interpreter entry point; most implicit state is collected
|
||||
in a type named JSContext. Therefore, all API and almost all other functions
|
||||
in JSRef take a JSContext pointer as their first argument.
|
||||
<p>The decompiler translates postfix bytecode into infix source by consulting
|
||||
a separate byte-sized code, called source notes, to disambiguate bytecodes
|
||||
that result from more than one grammatical production.
|
||||
<p>The GC is a mark-and-sweep, non-conservative (exact) collector. It
|
||||
can allocate only fixed-sized things -- the current size is two machine
|
||||
words. It is used to hold JS object and string descriptors (but not property
|
||||
lists or string bytes), and double-precision floating point numbers. It
|
||||
runs automatically only when maxbytes (as passed to <tt>JS_NewRuntime()</tt>)
|
||||
bytes of GC things have been allocated and another thing-allocation request
|
||||
is made. JS API users should call <tt>JS_GC()</tt> or <tt>JS_MaybeGC()</tt>
|
||||
between script executions or from the branch callback, as often as necessary.
|
||||
<p>An important point about the GC's "exactness": you must add roots for
|
||||
new objects created by your native methods if you store references to them
|
||||
into a non-JS structure in the malloc heap or in static data. Also, if
|
||||
you make a new object in a native method, but do not store it through the
|
||||
<tt>rval</tt>
|
||||
result parameter (see math_abs in the "Using the JS API" section above)
|
||||
so that it is in a known root, the object is guaranteed to survive only
|
||||
until another new object is created. Either lock the first new object when
|
||||
making two in a row, or store it in a root you've added, or store it via
|
||||
rval.
|
||||
See the <a href="http://www.mozilla.org/js/spidermonkey/gctips.html">GC tips</a>
|
||||
document for more.
|
||||
<p>The atom manager consists of a hash table associating strings uniquely
|
||||
with scanner/parser information such as keyword type, index in script or
|
||||
function literal pool, etc. Atoms play three roles in JSRef: as literals
|
||||
referred to by unaligned 16-bit immediate bytecode operands, as unique
|
||||
string descriptors for efficient property name hashing, and as members
|
||||
of the root GC set for exact GC.
|
||||
<p>Native objects and methods for arrays, booleans, dates, functions, numbers,
|
||||
and strings are implemented using the JS API and certain internal interfaces
|
||||
used as "fast paths".
|
||||
<p>In general, errors are signaled by false or unoverloaded-null return
|
||||
values, and are reported using <tt>JS_ReportError()</tt> or one of its
|
||||
variants by the lowest level in order to provide the most detail. Client
|
||||
code can substitute its own error reporting function and suppress errors,
|
||||
or reflect them into Java or some other runtime system as exceptions, GUI
|
||||
dialogs, etc..
|
||||
<h2>
|
||||
File walk-through (OUT OF DATE!)</h2>
|
||||
|
||||
<h4>
|
||||
jsapi.c, jsapi.h</h4>
|
||||
The public API to be used by almost all client code. If your client
|
||||
code can't make do with <tt>jsapi.h</tt>, and must reach into a friend
|
||||
or private js* file, please let us know so we can extend <tt>jsapi.h</tt>
|
||||
to include what you need in a fashion that we can support over the long
|
||||
run.
|
||||
<h4>
|
||||
jspubtd.h, jsprvtd.h</h4>
|
||||
These files exist to group struct and scalar typedefs so they can be used
|
||||
everywhere without dragging in struct definitions from N different files.
|
||||
The <tt>jspubtd.h</tt> file contains public typedefs, and is included by
|
||||
<tt>jsapi.h</tt>.
|
||||
The <tt>jsprvtd.h</tt> file contains private typedefs and is included by
|
||||
various .h files that need type names, but not type sizes or declarations.
|
||||
<h4>
|
||||
jsdbgapi.c, jsdbgapi.h</h4>
|
||||
The Debugging API, still very much under development. Provided so far:
|
||||
<ul>
|
||||
<li>
|
||||
Traps, with which breakpoints, single-stepping, step over, step out, and
|
||||
so on can be implemented. The debugger will have to consult jsopcode.def
|
||||
on its own to figure out where to plant trap instructions to implement
|
||||
functions like step out, but a future jsdbgapi.h will provide convenience
|
||||
interfaces to do these things. At most one trap per bytecode can be set.
|
||||
When a script (<tt>JSScript</tt>) is destroyed, all traps set in its bytecode
|
||||
are cleared.</li>
|
||||
|
||||
<li>
|
||||
Watchpoints, for intercepting set operations on properties and running
|
||||
a debugger-supplied function that receives the old value and a pointer
|
||||
to the new one, which it can use to modify the new value being set.</li>
|
||||
|
||||
<li>
|
||||
Line number to PC and back mapping functions. The line-to-PC direction
|
||||
"rounds" toward the next bytecode generated from a line greater than or
|
||||
equal to the input line, and may return the PC of a for-loop update part,
|
||||
if given the line number of the loop body's closing brace. Any line after
|
||||
the last one in a script or function maps to a PC one byte beyond the last
|
||||
bytecode in the script. An example, from perfect.js:</li>
|
||||
|
||||
<pre><tt>14 function perfect(n)
|
||||
15 {
|
||||
16 print("The perfect numbers up to " + n + " are:");
|
||||
17
|
||||
18 // We build sumOfDivisors[i] to hold a string expression for
|
||||
19 // the sum of the divisors of i, excluding i itself.
|
||||
20 var sumOfDivisors = new ExprArray(n+1,1);
|
||||
21 for (var divisor = 2; divisor <= n; divisor++) {
|
||||
22 for (var j = divisor + divisor; j <= n; j += divisor) {
|
||||
23 sumOfDivisors[j] += " + " + divisor;
|
||||
24 }
|
||||
25 // At this point everything up to 'divisor' has its sumOfDivisors
|
||||
26 // expression calculated, so we can determine whether it's perfect
|
||||
27 // already by evaluating.
|
||||
28 if (eval(sumOfDivisors[divisor]) == divisor) {
|
||||
29 print("" + divisor + " = " + sumOfDivisors[divisor]);
|
||||
30 }
|
||||
31 }
|
||||
32 delete sumOfDivisors;
|
||||
33 print("That's all.");
|
||||
34 }</tt></pre>
|
||||
The line number to PC and back mappings can be tested using the js program
|
||||
with the following script:
|
||||
<pre><tt> load("perfect.js")
|
||||
print(perfect)
|
||||
dis(perfect)
|
||||
|
||||
print()
|
||||
for (var ln = 0; ln <= 40; ln++) {
|
||||
var pc = line2pc(perfect,ln)
|
||||
var ln2 = pc2line(perfect,pc)
|
||||
print("\tline " + ln + " => pc " + pc + " => line " + ln2)
|
||||
}</tt></pre>
|
||||
The result of the for loop over lines 0 to 40 inclusive is:
|
||||
<pre><tt> line 0 => pc 0 => line 16
|
||||
line 1 => pc 0 => line 16
|
||||
line 2 => pc 0 => line 16
|
||||
line 3 => pc 0 => line 16
|
||||
line 4 => pc 0 => line 16
|
||||
line 5 => pc 0 => line 16
|
||||
line 6 => pc 0 => line 16
|
||||
line 7 => pc 0 => line 16
|
||||
line 8 => pc 0 => line 16
|
||||
line 9 => pc 0 => line 16
|
||||
line 10 => pc 0 => line 16
|
||||
line 11 => pc 0 => line 16
|
||||
line 12 => pc 0 => line 16
|
||||
line 13 => pc 0 => line 16
|
||||
line 14 => pc 0 => line 16
|
||||
line 15 => pc 0 => line 16
|
||||
line 16 => pc 0 => line 16
|
||||
line 17 => pc 19 => line 20
|
||||
line 18 => pc 19 => line 20
|
||||
line 19 => pc 19 => line 20
|
||||
line 20 => pc 19 => line 20
|
||||
line 21 => pc 36 => line 21
|
||||
line 22 => pc 53 => line 22
|
||||
line 23 => pc 74 => line 23
|
||||
line 24 => pc 92 => line 22
|
||||
line 25 => pc 106 => line 28
|
||||
line 26 => pc 106 => line 28
|
||||
line 27 => pc 106 => line 28
|
||||
line 28 => pc 106 => line 28
|
||||
line 29 => pc 127 => line 29
|
||||
line 30 => pc 154 => line 21
|
||||
line 31 => pc 154 => line 21
|
||||
line 32 => pc 161 => line 32
|
||||
line 33 => pc 172 => line 33
|
||||
line 34 => pc 172 => line 33
|
||||
line 35 => pc 172 => line 33
|
||||
line 36 => pc 172 => line 33
|
||||
line 37 => pc 172 => line 33
|
||||
line 38 => pc 172 => line 33
|
||||
line 39 => pc 172 => line 33
|
||||
line 40 => pc 172 => line 33</tt></pre>
|
||||
</ul>
|
||||
|
||||
<h4>
|
||||
jsconfig.h</h4>
|
||||
Various configuration macros defined as 0 or 1 depending on how <tt>JS_VERSION</tt>
|
||||
is defined (as 10 for JavaScript 1.0, 11 for JavaScript 1.1, etc.). Not
|
||||
all macros are tested around related code yet. In particular, JS 1.0 support
|
||||
is missing from JSRef. JS 1.2 support will appear in a future JSRef release.
|
||||
<br>
|
||||
<h4>
|
||||
js.c</h4>
|
||||
The "JS shell", a simple interpreter program that uses the JS API and more
|
||||
than a few internal interfaces (some of these internal interfaces could
|
||||
be replaced by <tt>jsapi.h</tt> calls). The js program built from this
|
||||
source provides a test vehicle for evaluating scripts and calling functions,
|
||||
trying out new debugger primitives, etc.
|
||||
<h4>
|
||||
jsarray.*, jsbool.*, jdsdate.*, jsfun.*, jsmath.*, jsnum.*, jsstr.*</h4>
|
||||
These file pairs implement the standard classes and (where they exist)
|
||||
their underlying primitive types. They have similar structure, generally
|
||||
starting with class definitions and continuing with internal constructors,
|
||||
finalizers, and helper functions.
|
||||
<h4>
|
||||
jsobj.*, jsscope.*</h4>
|
||||
These two pairs declare and implement the JS object system. All of the
|
||||
following happen here:
|
||||
<ul>
|
||||
<li>
|
||||
creating objects by class and prototype, and finalizing objects;</li>
|
||||
|
||||
<li>
|
||||
defining, looking up, getting, setting, and deleting properties;</li>
|
||||
|
||||
<li>
|
||||
creating and destroying properties and binding names to them.</li>
|
||||
</ul>
|
||||
The details of a native object's map (scope) are mostly hidden in
|
||||
<tt>jsscope.[ch]</tt>.
|
||||
<h4>
|
||||
jsatom.c, jsatom.h</h4>
|
||||
The atom manager. Contains well-known string constants, their atoms, the
|
||||
global atom hash table and related state, the js_Atomize() function that
|
||||
turns a counted string of bytes into an atom, and literal pool (<tt>JSAtomMap</tt>)
|
||||
methods.
|
||||
<h4>
|
||||
jsgc.c, jsgc.h</h4>
|
||||
[TBD]
|
||||
<h4>
|
||||
jsinterp.*, jscntxt.*</h4>
|
||||
The bytecode interpreter, and related functions such as Call and AllocStack,
|
||||
live in <i>jsinterp.c</i>. The JSContext constructor and destructor are
|
||||
factored out into <i>jscntxt.c</i> for minimal linking when the compiler
|
||||
part of JS is split from the interpreter part into a separate program.
|
||||
<h4>
|
||||
jsemit.*, jsopcode.tbl, jsopcode.*, jsparse.*, jsscan.*, jsscript.*</h4>
|
||||
Compiler and decompiler modules. The <i>jsopcode.tbl</i> file is a C preprocessor
|
||||
source that defines almost everything there is to know about JS bytecodes.
|
||||
See its major comment for how to use it. For now, a debugger will use it
|
||||
and its dependents such as <i>jsopcode.h</i> directly, but over time we
|
||||
intend to extend <i>jsdbgapi.h</i> to hide uninteresting details and provide
|
||||
conveniences. The code generator is split across paragraphs of code in
|
||||
<i>jsparse.c</i>,
|
||||
and the utility methods called on <tt>JSCodeGenerator</tt> appear in <i>jsemit.c</i>.
|
||||
Source notes generated by <i>jsparse.c</i> and
|
||||
<i>jsemit.c</i> are used
|
||||
in <i>jsscript.c</i> to map line number to program counter and back.
|
||||
<h4>
|
||||
jstypes.h, jslog2.c</h4>
|
||||
Fundamental representation types and utility macros. This file alone among
|
||||
all .h files in JSRef must be included first by .c files. It is not nested
|
||||
in .h files, as other prerequisite .h files generally are, since it is
|
||||
also a direct dependency of most .c files and would be over-included if
|
||||
nested in addition to being directly included. The one "not-quite-a-macro
|
||||
macro" is the <tt>JS_CeilingLog2()</tt> function in <i>jslog2.c</i>.
|
||||
<h4>
|
||||
jsarena.c, jsarena.h</h4>
|
||||
Last-In-First-Out allocation macros that amortize malloc costs and allow
|
||||
for en-masse freeing. See the paper mentioned in prarena.h's major comment.
|
||||
<h4>
|
||||
jsutil.c, jsutil.h</h4>
|
||||
The <tt>JS_ASSERT</tt> macro is used throughout JSRef source as a proof
|
||||
device to make invariants and preconditions clear to the reader, and to
|
||||
hold the line during maintenance and evolution against regressions or violations
|
||||
of assumptions that it would be too expensive to test unconditionally at
|
||||
run-time. Certain assertions are followed by run-time tests that cope with
|
||||
assertion failure, but only where I'm too smart or paranoid to believe
|
||||
the assertion will never fail...
|
||||
<h4>
|
||||
jsclist.h</h4>
|
||||
Doubly-linked circular list struct and macros.
|
||||
<h4>
|
||||
jscpucfg.c</h4>
|
||||
This standalone program generates <i>jscpucfg.h</i>, a header file containing
|
||||
bytes per word and other constants that depend on CPU architecture and
|
||||
C compiler type model. It tries to discover most of these constants by
|
||||
running its own experiments on the build host, so if you are cross-compiling,
|
||||
beware.
|
||||
<h4>
|
||||
prdtoa.c, prdtoa.h</h4>
|
||||
David Gay's portable double-precision floating point to string conversion
|
||||
code, with Permission To Use notice included.
|
||||
<h4>
|
||||
prhash.c, prhash.h</h4>
|
||||
Portable, extensible hash tables. These use multiplicative hash for strength
|
||||
reduction over division hash, yet with very good key distribution over
|
||||
power of two table sizes. Collisions resolve via chaining, so each entry
|
||||
burns a malloc and can fragment the heap.
|
||||
<h4>
|
||||
prlong.c, prlong.h</h4>
|
||||
64-bit integer emulation, and compatible macros that use C's long long
|
||||
type where it exists (my last company mapped long long to a 128-bit type,
|
||||
but no real architecture does 128-bit ints yet).
|
||||
<h4>
|
||||
jsosdep.h</h4>
|
||||
Annoying OS dependencies rationalized into a few "feature-test" macros
|
||||
such as <tt>JS_HAVE_LONG_LONG</tt>.
|
||||
<h4>
|
||||
jsprf.*</h4>
|
||||
Portable, buffer-overrun-resistant sprintf and friends. For no good reason
|
||||
save lack of time, the %e, %f, and %g formats cause your system's native
|
||||
sprintf, rather than <tt>JS_dtoa()</tt>, to be used. This bug doesn't affect
|
||||
JSRef, because it uses its own <tt>JS_dtoa()</tt> call in <i>jsnum.c</i>
|
||||
to convert from double to string, but it's a bug that we'll fix later,
|
||||
and one you should be aware of if you intend to use a <tt>JS_*printf()</tt>
|
||||
function with your own floating type arguments - various vendor sprintf's
|
||||
mishandle NaN, +/-Inf, and some even print normal floating values inaccurately.
|
||||
<h4>
|
||||
prmjtime.c, prmjtime.h</h4>
|
||||
Time functions. These interfaces are named in a way that makes local vs.
|
||||
universal time confusion likely. Caveat emptor, and we're working on it.
|
||||
To make matters worse, Java (and therefore JavaScript) uses "local" time
|
||||
numbers (offsets from the epoch) in its Date class.
|
||||
|
||||
|
||||
<h2>
|
||||
<a NAME="Resources"></a>Additional Resources (links, API docs, and newsgroups)</h2>
|
||||
<ul>
|
||||
<li><a href ="http://www.mozilla.org/js/">http://www.mozilla.org/js/</a>
|
||||
<li><a href ="http://www.mozilla.org/js/spidermonkey/">http://www.mozilla.org/js/spidermonkey/</a>
|
||||
<li><a href ="news://news.mozilla.org/netscape.public.mozilla.jseng">news://news.mozilla.org/netscape.public.mozilla.jseng</a>
|
||||
</ul>
|
||||
|
||||
|
||||
|
||||
</body>
|
||||
</html>
|
||||
@@ -1,74 +0,0 @@
|
||||
# -*- mode: python -*-
|
||||
|
||||
Import("env windows linux darwin solaris")
|
||||
|
||||
def removeIfPresent(lst, item):
|
||||
try:
|
||||
lst.remove(item)
|
||||
except ValueError:
|
||||
pass
|
||||
|
||||
env = env.Clone()
|
||||
|
||||
env.Append(CPPDEFINES=["JSFILE", "EXPORT_JS_API", "JS_C_STRINGS_ARE_UTF8"])
|
||||
|
||||
for to_remove in ['-Werror', '/TP', '/O2', '/Gy']:
|
||||
removeIfPresent(env['CCFLAGS'], to_remove)
|
||||
|
||||
if windows:
|
||||
env.Append(CCFLAGS=['/wd4748'])
|
||||
|
||||
removeIfPresent(env['CPPDEFINES'], 'NDEBUG')
|
||||
|
||||
if linux or darwin:
|
||||
env.Append(CPPDEFINES=['HAVE_VA_COPY', 'VA_COPY=va_copy'])
|
||||
elif solaris:
|
||||
env.Append(CPPDEFINES=['SOLARIS', 'HAVE_VA_LIST_AS_ARRAY', 'SVR4', 'SYSV', 'HAVE_LOCALTIME_R'])
|
||||
|
||||
env.Program('jskwgen', 'jskwgen.c')
|
||||
env.Program('jscpucfg', 'jscpucfg.c')
|
||||
|
||||
env.Command('jsautokw.h', ['${PROGREFIX}jskwgen${PROGSUFFIX}'],
|
||||
'$SOURCE >$TARGET')
|
||||
|
||||
env.Command('jsautocfg.h', ['${PROGREFIX}jscpucfg${PROGSUFFIX}'],
|
||||
'$SOURCE >$TARGET')
|
||||
|
||||
env.StaticLibrary(
|
||||
"js",
|
||||
[ "jsapi.c",
|
||||
"jsarena.c",
|
||||
"jsarray.c",
|
||||
"jsatom.c",
|
||||
"jsbool.c",
|
||||
"jscntxt.c",
|
||||
"jsdate.c",
|
||||
"jsdbgapi.c",
|
||||
"jsdhash.c",
|
||||
"jsdtoa.c",
|
||||
"jsemit.c",
|
||||
"jsexn.c",
|
||||
"jsfun.c",
|
||||
"jsgc.c",
|
||||
"jshash.c",
|
||||
"jsiter.c",
|
||||
"jsinterp.c",
|
||||
"jslock.c",
|
||||
"jslog2.c",
|
||||
"jslong.c",
|
||||
"jsmath.c",
|
||||
"jsnum.c",
|
||||
"jsobj.c",
|
||||
"jsopcode.c",
|
||||
"jsparse.c",
|
||||
"jsprf.c",
|
||||
"jsregexp.c",
|
||||
"jsscan.c",
|
||||
"jsscope.c",
|
||||
"jsscript.c",
|
||||
"jsstr.c",
|
||||
"jsutil.c",
|
||||
"jsxdrapi.c",
|
||||
"jsxml.c",
|
||||
"prmjtime.c",
|
||||
])
|
||||
@@ -1,168 +0,0 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||
<ItemGroup Label="ProjectConfigurations">
|
||||
<ProjectConfiguration Include="Debug|Win32">
|
||||
<Configuration>Debug</Configuration>
|
||||
<Platform>Win32</Platform>
|
||||
</ProjectConfiguration>
|
||||
<ProjectConfiguration Include="Debug|x64">
|
||||
<Configuration>Debug</Configuration>
|
||||
<Platform>x64</Platform>
|
||||
</ProjectConfiguration>
|
||||
<ProjectConfiguration Include="Release|Win32">
|
||||
<Configuration>Release</Configuration>
|
||||
<Platform>Win32</Platform>
|
||||
</ProjectConfiguration>
|
||||
<ProjectConfiguration Include="Release|x64">
|
||||
<Configuration>Release</Configuration>
|
||||
<Platform>x64</Platform>
|
||||
</ProjectConfiguration>
|
||||
</ItemGroup>
|
||||
<PropertyGroup Label="Globals">
|
||||
<ProjectName>SpiderMonkey pre-build step</ProjectName>
|
||||
<ProjectGuid>{7FA15DF8-14C8-4FD5-897B-6FACE8FDCF2A}</ProjectGuid>
|
||||
<RootNamespace>SpiderMonkeyprebuildvs2005</RootNamespace>
|
||||
</PropertyGroup>
|
||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
|
||||
<ConfigurationType>Application</ConfigurationType>
|
||||
<CharacterSet>Unicode</CharacterSet>
|
||||
<WholeProgramOptimization>true</WholeProgramOptimization>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
|
||||
<ConfigurationType>Application</ConfigurationType>
|
||||
<CharacterSet>Unicode</CharacterSet>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
|
||||
<ConfigurationType>Application</ConfigurationType>
|
||||
<CharacterSet>Unicode</CharacterSet>
|
||||
<WholeProgramOptimization>true</WholeProgramOptimization>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
|
||||
<ConfigurationType>Application</ConfigurationType>
|
||||
<CharacterSet>Unicode</CharacterSet>
|
||||
</PropertyGroup>
|
||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
|
||||
<ImportGroup Label="ExtensionSettings">
|
||||
</ImportGroup>
|
||||
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="PropertySheets">
|
||||
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
|
||||
</ImportGroup>
|
||||
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="PropertySheets">
|
||||
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
|
||||
</ImportGroup>
|
||||
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="PropertySheets">
|
||||
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
|
||||
</ImportGroup>
|
||||
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="PropertySheets">
|
||||
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
|
||||
</ImportGroup>
|
||||
<PropertyGroup Label="UserMacros" />
|
||||
<PropertyGroup>
|
||||
<_ProjectFileVersion>10.0.40219.1</_ProjectFileVersion>
|
||||
<OutDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(ProjectDir)</OutDir>
|
||||
<IntDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(ProjectDir)</IntDir>
|
||||
<GenerateManifest Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">false</GenerateManifest>
|
||||
<OutDir Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(ProjectDir)</OutDir>
|
||||
<IntDir Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(ProjectDir)</IntDir>
|
||||
<GenerateManifest Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">false</GenerateManifest>
|
||||
<OutDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(ProjectDir)</OutDir>
|
||||
<IntDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(ProjectDir)</IntDir>
|
||||
<GenerateManifest Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">false</GenerateManifest>
|
||||
<OutDir Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(ProjectDir)</OutDir>
|
||||
<IntDir Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(ProjectDir)</IntDir>
|
||||
<GenerateManifest Condition="'$(Configuration)|$(Platform)'=='Release|x64'">false</GenerateManifest>
|
||||
<TargetName Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">jskwgen</TargetName>
|
||||
<TargetName Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">jskwgen</TargetName>
|
||||
<TargetName Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">jskwgen</TargetName>
|
||||
<TargetName Condition="'$(Configuration)|$(Platform)'=='Release|x64'">jskwgen</TargetName>
|
||||
</PropertyGroup>
|
||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
|
||||
<ClCompile>
|
||||
<Optimization>Disabled</Optimization>
|
||||
<PreprocessorDefinitions>_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
<ExceptionHandling>
|
||||
</ExceptionHandling>
|
||||
<BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
|
||||
<RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary>
|
||||
<WarningLevel>Level3</WarningLevel>
|
||||
</ClCompile>
|
||||
<Link>
|
||||
<OutputFile>$(OutDir)jskwgen.exe</OutputFile>
|
||||
<GenerateDebugInformation>true</GenerateDebugInformation>
|
||||
<TargetMachine>MachineX86</TargetMachine>
|
||||
</Link>
|
||||
</ItemDefinitionGroup>
|
||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
|
||||
<Midl>
|
||||
<TargetEnvironment>X64</TargetEnvironment>
|
||||
</Midl>
|
||||
<ClCompile>
|
||||
<Optimization>Disabled</Optimization>
|
||||
<PreprocessorDefinitions>_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
<ExceptionHandling>
|
||||
</ExceptionHandling>
|
||||
<BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
|
||||
<RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary>
|
||||
<WarningLevel>Level3</WarningLevel>
|
||||
</ClCompile>
|
||||
<Link>
|
||||
<OutputFile>$(OutDir)jskwgen.exe</OutputFile>
|
||||
<GenerateDebugInformation>true</GenerateDebugInformation>
|
||||
<TargetMachine>MachineX64</TargetMachine>
|
||||
</Link>
|
||||
</ItemDefinitionGroup>
|
||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
|
||||
<ClCompile>
|
||||
<PreprocessorDefinitions>_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
<ExceptionHandling>
|
||||
</ExceptionHandling>
|
||||
<RuntimeLibrary>MultiThreaded</RuntimeLibrary>
|
||||
<WarningLevel>Level3</WarningLevel>
|
||||
</ClCompile>
|
||||
<Link>
|
||||
<OutputFile>$(OutDir)jskwgen.exe</OutputFile>
|
||||
<GenerateDebugInformation>true</GenerateDebugInformation>
|
||||
<OptimizeReferences>true</OptimizeReferences>
|
||||
<EnableCOMDATFolding>true</EnableCOMDATFolding>
|
||||
<TargetMachine>MachineX86</TargetMachine>
|
||||
</Link>
|
||||
</ItemDefinitionGroup>
|
||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
|
||||
<Midl>
|
||||
<TargetEnvironment>X64</TargetEnvironment>
|
||||
</Midl>
|
||||
<ClCompile>
|
||||
<PreprocessorDefinitions>_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
<ExceptionHandling>
|
||||
</ExceptionHandling>
|
||||
<RuntimeLibrary>MultiThreaded</RuntimeLibrary>
|
||||
<WarningLevel>Level3</WarningLevel>
|
||||
</ClCompile>
|
||||
<Link>
|
||||
<OutputFile>$(OutDir)jskwgen.exe</OutputFile>
|
||||
<GenerateDebugInformation>true</GenerateDebugInformation>
|
||||
<OptimizeReferences>true</OptimizeReferences>
|
||||
<EnableCOMDATFolding>true</EnableCOMDATFolding>
|
||||
<TargetMachine>MachineX64</TargetMachine>
|
||||
</Link>
|
||||
</ItemDefinitionGroup>
|
||||
<ItemGroup>
|
||||
<ClCompile Include="jskwgen.c">
|
||||
<PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">JSFILE;EXPORT_JS_API;JS_C_STRINGS_ARE_UTF8;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
<PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">JSFILE;EXPORT_JS_API;JS_C_STRINGS_ARE_UTF8;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
<PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">JSFILE;EXPORT_JS_API;JS_C_STRINGS_ARE_UTF8;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
<PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Release|x64'">JSFILE;EXPORT_JS_API;JS_C_STRINGS_ARE_UTF8;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
</ClCompile>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<ClInclude Include="jsconfig.h" />
|
||||
<ClInclude Include="jsstddef.h" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<None Include="jskeyword.tbl" />
|
||||
</ItemGroup>
|
||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
|
||||
<ImportGroup Label="ExtensionTargets">
|
||||
</ImportGroup>
|
||||
</Project>
|
||||
@@ -1,31 +0,0 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||
<ItemGroup>
|
||||
<Filter Include="Source Files">
|
||||
<UniqueIdentifier>{4FC737F1-C7A5-4376-A066-2A32D752A2FF}</UniqueIdentifier>
|
||||
<Extensions>cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx</Extensions>
|
||||
</Filter>
|
||||
<Filter Include="Header Files">
|
||||
<UniqueIdentifier>{93995380-89BD-4b04-88EB-625FBE52EBFB}</UniqueIdentifier>
|
||||
<Extensions>h;hpp;hxx;hm;inl;inc;xsd</Extensions>
|
||||
</Filter>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<ClInclude Include="jsconfig.h">
|
||||
<Filter>Header Files</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="jsstddef.h">
|
||||
<Filter>Header Files</Filter>
|
||||
</ClInclude>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<ClCompile Include="jskwgen.c">
|
||||
<Filter>Source Files</Filter>
|
||||
</ClCompile>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<None Include="jskeyword.tbl">
|
||||
<Filter>Header Files</Filter>
|
||||
</None>
|
||||
</ItemGroup>
|
||||
</Project>
|
||||
@@ -1,19 +0,0 @@
|
||||
// The Y combinator, applied to the factorial function
|
||||
|
||||
function factorial(proc) {
|
||||
return function (n) {
|
||||
return (n <= 1) ? 1 : n * proc(n-1);
|
||||
}
|
||||
}
|
||||
|
||||
function Y(outer) {
|
||||
function inner(proc) {
|
||||
function apply(arg) {
|
||||
return proc(proc)(arg);
|
||||
}
|
||||
return outer(apply);
|
||||
}
|
||||
return inner(inner);
|
||||
}
|
||||
|
||||
print("5! is " + Y(factorial)(5));
|
||||
@@ -1,186 +0,0 @@
|
||||
# -*- Mode: makefile -*-
|
||||
#
|
||||
# ***** BEGIN LICENSE BLOCK *****
|
||||
# Version: MPL 1.1/GPL 2.0/LGPL 2.1
|
||||
#
|
||||
# The contents of this file are subject to the Mozilla Public License Version
|
||||
# 1.1 (the "License"); you may not use this file except in compliance with
|
||||
# the License. You may obtain a copy of the License at
|
||||
# http://www.mozilla.org/MPL/
|
||||
#
|
||||
# Software distributed under the License is distributed on an "AS IS" basis,
|
||||
# WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
|
||||
# for the specific language governing rights and limitations under the
|
||||
# License.
|
||||
#
|
||||
# The Original Code is Mozilla Communicator client code, released
|
||||
# March 31, 1998.
|
||||
#
|
||||
# The Initial Developer of the Original Code is
|
||||
# Netscape Communications Corporation.
|
||||
# Portions created by the Initial Developer are Copyright (C) 1998-1999
|
||||
# the Initial Developer. All Rights Reserved.
|
||||
#
|
||||
# Contributor(s):
|
||||
#
|
||||
# Alternatively, the contents of this file may be used under the terms of
|
||||
# either of the GNU General Public License Version 2 or later (the "GPL"),
|
||||
# or the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
|
||||
# in which case the provisions of the GPL or the LGPL are applicable instead
|
||||
# of those above. If you wish to allow use of your version of this file only
|
||||
# under the terms of either the GPL or the LGPL, and not to allow others to
|
||||
# use your version of this file under the terms of the MPL, indicate your
|
||||
# decision by deleting the provisions above and replace them with the notice
|
||||
# and other provisions required by the GPL or the LGPL. If you do not delete
|
||||
# the provisions above, a recipient may use your version of this file under
|
||||
# the terms of any one of the MPL, the GPL or the LGPL.
|
||||
#
|
||||
# ***** END LICENSE BLOCK *****
|
||||
|
||||
ifdef JS_DIST
|
||||
DIST = $(JS_DIST)
|
||||
else
|
||||
DIST = $(DEPTH)/../../dist
|
||||
endif
|
||||
|
||||
# Set os+release dependent make variables
|
||||
OS_ARCH := $(subst /,_,$(shell uname -s | sed /\ /s//_/))
|
||||
|
||||
# Attempt to differentiate between SunOS 5.4 and x86 5.4
|
||||
OS_CPUARCH := $(shell uname -m)
|
||||
ifeq ($(OS_CPUARCH),i86pc)
|
||||
OS_RELEASE := $(shell uname -r)_$(OS_CPUARCH)
|
||||
else
|
||||
ifeq ($(OS_ARCH),AIX)
|
||||
OS_RELEASE := $(shell uname -v).$(shell uname -r)
|
||||
else
|
||||
OS_RELEASE := $(shell uname -r)
|
||||
endif
|
||||
endif
|
||||
ifeq ($(OS_ARCH),IRIX64)
|
||||
OS_ARCH := IRIX
|
||||
endif
|
||||
|
||||
# Handle output from win32 unames other than Netscape's version
|
||||
ifeq (,$(filter-out Windows_95 Windows_98 CYGWIN_95-4.0 CYGWIN_98-4.10, $(OS_ARCH)))
|
||||
OS_ARCH := WIN95
|
||||
endif
|
||||
ifeq ($(OS_ARCH),WIN95)
|
||||
OS_ARCH := WINNT
|
||||
OS_RELEASE := 4.0
|
||||
endif
|
||||
ifeq ($(OS_ARCH), Windows_NT)
|
||||
OS_ARCH := WINNT
|
||||
OS_MINOR_RELEASE := $(shell uname -v)
|
||||
ifeq ($(OS_MINOR_RELEASE),00)
|
||||
OS_MINOR_RELEASE = 0
|
||||
endif
|
||||
OS_RELEASE := $(OS_RELEASE).$(OS_MINOR_RELEASE)
|
||||
endif
|
||||
ifeq (CYGWIN_NT,$(findstring CYGWIN_NT,$(OS_ARCH)))
|
||||
OS_RELEASE := $(patsubst CYGWIN_NT-%,%,$(OS_ARCH))
|
||||
OS_ARCH := WINNT
|
||||
endif
|
||||
ifeq ($(OS_ARCH), CYGWIN32_NT)
|
||||
OS_ARCH := WINNT
|
||||
endif
|
||||
ifeq (MINGW32_NT,$(findstring MINGW32_NT,$(OS_ARCH)))
|
||||
OS_RELEASE := $(patsubst MINGW32_NT-%,%,$(OS_ARCH))
|
||||
OS_ARCH := WINNT
|
||||
endif
|
||||
|
||||
# Virtually all Linux versions are identical.
|
||||
# Any distinctions are handled in linux.h
|
||||
ifeq ($(OS_ARCH),Linux)
|
||||
OS_CONFIG := Linux_All
|
||||
else
|
||||
ifeq ($(OS_ARCH),dgux)
|
||||
OS_CONFIG := dgux
|
||||
else
|
||||
ifeq ($(OS_ARCH),Darwin)
|
||||
OS_CONFIG := Darwin
|
||||
else
|
||||
OS_CONFIG := $(OS_ARCH)$(OS_OBJTYPE)$(OS_RELEASE)
|
||||
endif
|
||||
endif
|
||||
endif
|
||||
|
||||
ASFLAGS =
|
||||
DEFINES =
|
||||
|
||||
ifeq ($(OS_ARCH), WINNT)
|
||||
INSTALL = nsinstall
|
||||
CP = cp
|
||||
else
|
||||
INSTALL = $(DIST)/bin/nsinstall
|
||||
CP = cp
|
||||
endif
|
||||
|
||||
ifdef BUILD_OPT
|
||||
OPTIMIZER = -O
|
||||
DEFINES += -UDEBUG -DNDEBUG -UDEBUG_$(USER)
|
||||
OBJDIR_TAG = _OPT
|
||||
else
|
||||
ifdef USE_MSVC
|
||||
OPTIMIZER = -Zi
|
||||
else
|
||||
OPTIMIZER = -g
|
||||
endif
|
||||
DEFINES += -DDEBUG -DDEBUG_$(USER)
|
||||
OBJDIR_TAG = _DBG
|
||||
endif
|
||||
|
||||
SO_SUFFIX = so
|
||||
|
||||
NS_USE_NATIVE = 1
|
||||
|
||||
# Java stuff
|
||||
CLASSDIR = $(DEPTH)/liveconnect/classes
|
||||
JAVA_CLASSES = $(patsubst %.java,%.class,$(JAVA_SRCS))
|
||||
TARGETS += $(addprefix $(CLASSDIR)/$(OBJDIR)/$(JARPATH)/, $(JAVA_CLASSES))
|
||||
JAVAC = $(JDK)/bin/javac
|
||||
JAVAC_FLAGS = -classpath "$(CLASSPATH)" -d $(CLASSDIR)/$(OBJDIR)
|
||||
ifeq ($(OS_ARCH), WINNT)
|
||||
SEP = ;
|
||||
else
|
||||
SEP = :
|
||||
endif
|
||||
CLASSPATH = $(JDK)/lib/classes.zip$(SEP)$(CLASSDIR)/$(OBJDIR)
|
||||
|
||||
include $(DEPTH)/config/$(OS_CONFIG).mk
|
||||
|
||||
ifndef OBJ_SUFFIX
|
||||
ifdef USE_MSVC
|
||||
OBJ_SUFFIX = obj
|
||||
else
|
||||
OBJ_SUFFIX = o
|
||||
endif
|
||||
endif
|
||||
|
||||
ifndef HOST_BIN_SUFFIX
|
||||
ifeq ($(OS_ARCH),WINNT)
|
||||
HOST_BIN_SUFFIX = .exe
|
||||
else
|
||||
HOST_BIN_SUFFIX =
|
||||
endif
|
||||
endif
|
||||
|
||||
# Name of the binary code directories
|
||||
ifdef BUILD_IDG
|
||||
OBJDIR = $(OS_CONFIG)$(OBJDIR_TAG).OBJD
|
||||
else
|
||||
OBJDIR = $(OS_CONFIG)$(OBJDIR_TAG).OBJ
|
||||
endif
|
||||
VPATH = $(OBJDIR)
|
||||
|
||||
# Automatic make dependencies file
|
||||
DEPENDENCIES = $(OBJDIR)/.md
|
||||
|
||||
LCJAR = js15lc30.jar
|
||||
|
||||
# Library name
|
||||
LIBDIR := lib
|
||||
ifeq ($(CPU_ARCH), x86_64)
|
||||
LIBDIR := lib64
|
||||
endif
|
||||
|
||||
@@ -1,65 +0,0 @@
|
||||
# -*- Mode: makefile -*-
|
||||
#
|
||||
# ***** BEGIN LICENSE BLOCK *****
|
||||
# Version: MPL 1.1/GPL 2.0/LGPL 2.1
|
||||
#
|
||||
# The contents of this file are subject to the Mozilla Public License Version
|
||||
# 1.1 (the "License"); you may not use this file except in compliance with
|
||||
# the License. You may obtain a copy of the License at
|
||||
# http://www.mozilla.org/MPL/
|
||||
#
|
||||
# Software distributed under the License is distributed on an "AS IS" basis,
|
||||
# WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
|
||||
# for the specific language governing rights and limitations under the
|
||||
# License.
|
||||
#
|
||||
# The Original Code is Mozilla Communicator client code, released
|
||||
# March 31, 1998.
|
||||
#
|
||||
# The Initial Developer of the Original Code is
|
||||
# Netscape Communications Corporation.
|
||||
# Portions created by the Initial Developer are Copyright (C) 1998
|
||||
# the Initial Developer. All Rights Reserved.
|
||||
#
|
||||
# Contributor(s):
|
||||
#
|
||||
# Alternatively, the contents of this file may be used under the terms of
|
||||
# either the GNU General Public License Version 2 or later (the "GPL"), or
|
||||
# the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
|
||||
# in which case the provisions of the GPL or the LGPL are applicable instead
|
||||
# of those above. If you wish to allow use of your version of this file only
|
||||
# under the terms of either the GPL or the LGPL, and not to allow others to
|
||||
# use your version of this file under the terms of the MPL, indicate your
|
||||
# decision by deleting the provisions above and replace them with the notice
|
||||
# and other provisions required by the GPL or the LGPL. If you do not delete
|
||||
# the provisions above, a recipient may use your version of this file under
|
||||
# the terms of any one of the MPL, the GPL or the LGPL.
|
||||
#
|
||||
# ***** END LICENSE BLOCK *****
|
||||
|
||||
#
|
||||
# Config stuff for AIX
|
||||
#
|
||||
|
||||
CC = xlC_r
|
||||
CCC = xlC_r
|
||||
|
||||
RANLIB = ranlib
|
||||
|
||||
#.c.o:
|
||||
# $(CC) -c -MD $*.d $(CFLAGS) $<
|
||||
ARCH := aix
|
||||
CPU_ARCH = rs6000
|
||||
GFX_ARCH = x
|
||||
INLINES = js_compare_and_swap:js_fast_lock1:js_fast_unlock1:js_lock_get_slot:js_lock_set_slot:js_lock_scope1
|
||||
|
||||
OS_CFLAGS = -qarch=com -qinline+$(INLINES) -DXP_UNIX -DAIX -DAIXV3 -DSYSV -DHAVE_LOCALTIME_R
|
||||
OS_LIBS = -lbsd -lsvld -lm
|
||||
#-lpthreads -lc_r
|
||||
|
||||
MKSHLIB = $(LD) -bM:SRE -bh:4 -bnoentry -berok
|
||||
XLDFLAGS += -lc
|
||||
|
||||
ifdef JS_THREADSAFE
|
||||
XLDFLAGS += -lsvld
|
||||
endif
|
||||
@@ -1,64 +0,0 @@
|
||||
# -*- Mode: makefile -*-
|
||||
#
|
||||
# ***** BEGIN LICENSE BLOCK *****
|
||||
# Version: MPL 1.1/GPL 2.0/LGPL 2.1
|
||||
#
|
||||
# The contents of this file are subject to the Mozilla Public License Version
|
||||
# 1.1 (the "License"); you may not use this file except in compliance with
|
||||
# the License. You may obtain a copy of the License at
|
||||
# http://www.mozilla.org/MPL/
|
||||
#
|
||||
# Software distributed under the License is distributed on an "AS IS" basis,
|
||||
# WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
|
||||
# for the specific language governing rights and limitations under the
|
||||
# License.
|
||||
#
|
||||
# The Original Code is Mozilla Communicator client code, released
|
||||
# March 31, 1998.
|
||||
#
|
||||
# The Initial Developer of the Original Code is
|
||||
# Netscape Communications Corporation.
|
||||
# Portions created by the Initial Developer are Copyright (C) 1998
|
||||
# the Initial Developer. All Rights Reserved.
|
||||
#
|
||||
# Contributor(s):
|
||||
#
|
||||
# Alternatively, the contents of this file may be used under the terms of
|
||||
# either the GNU General Public License Version 2 or later (the "GPL"), or
|
||||
# the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
|
||||
# in which case the provisions of the GPL or the LGPL are applicable instead
|
||||
# of those above. If you wish to allow use of your version of this file only
|
||||
# under the terms of either the GPL or the LGPL, and not to allow others to
|
||||
# use your version of this file under the terms of the MPL, indicate your
|
||||
# decision by deleting the provisions above and replace them with the notice
|
||||
# and other provisions required by the GPL or the LGPL. If you do not delete
|
||||
# the provisions above, a recipient may use your version of this file under
|
||||
# the terms of any one of the MPL, the GPL or the LGPL.
|
||||
#
|
||||
# ***** END LICENSE BLOCK *****
|
||||
|
||||
#
|
||||
# Config stuff for AIX
|
||||
#
|
||||
|
||||
CC = xlC_r
|
||||
CCC = xlC_r
|
||||
CFLAGS += -qarch=com -qnoansialias -qinline+$(INLINES) -DXP_UNIX -DAIX -DAIXV3 -DSYSV -DHAVE_LOCALTIME_R
|
||||
|
||||
RANLIB = ranlib
|
||||
|
||||
#.c.o:
|
||||
# $(CC) -c -MD $*.d $(CFLAGS) $<
|
||||
ARCH := aix
|
||||
CPU_ARCH = rs6000
|
||||
GFX_ARCH = x
|
||||
INLINES = js_compare_and_swap:js_fast_lock1:js_fast_unlock1:js_lock_get_slot:js_lock_set_slot:js_lock_scope1
|
||||
|
||||
#-lpthreads -lc_r
|
||||
|
||||
MKSHLIB = /usr/lpp/xlC/bin/makeC++SharedLib_r -p 0 -G -berok
|
||||
|
||||
ifdef JS_THREADSAFE
|
||||
XLDFLAGS += -ldl
|
||||
endif
|
||||
|
||||
@@ -1,65 +0,0 @@
|
||||
# -*- Mode: makefile -*-
|
||||
#
|
||||
# ***** BEGIN LICENSE BLOCK *****
|
||||
# Version: MPL 1.1/GPL 2.0/LGPL 2.1
|
||||
#
|
||||
# The contents of this file are subject to the Mozilla Public License Version
|
||||
# 1.1 (the "License"); you may not use this file except in compliance with
|
||||
# the License. You may obtain a copy of the License at
|
||||
# http://www.mozilla.org/MPL/
|
||||
#
|
||||
# Software distributed under the License is distributed on an "AS IS" basis,
|
||||
# WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
|
||||
# for the specific language governing rights and limitations under the
|
||||
# License.
|
||||
#
|
||||
# The Original Code is Mozilla Communicator client code, released
|
||||
# March 31, 1998.
|
||||
#
|
||||
# The Initial Developer of the Original Code is
|
||||
# Netscape Communications Corporation.
|
||||
# Portions created by the Initial Developer are Copyright (C) 1998
|
||||
# the Initial Developer. All Rights Reserved.
|
||||
#
|
||||
# Contributor(s):
|
||||
#
|
||||
# Alternatively, the contents of this file may be used under the terms of
|
||||
# either the GNU General Public License Version 2 or later (the "GPL"), or
|
||||
# the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
|
||||
# in which case the provisions of the GPL or the LGPL are applicable instead
|
||||
# of those above. If you wish to allow use of your version of this file only
|
||||
# under the terms of either the GPL or the LGPL, and not to allow others to
|
||||
# use your version of this file under the terms of the MPL, indicate your
|
||||
# decision by deleting the provisions above and replace them with the notice
|
||||
# and other provisions required by the GPL or the LGPL. If you do not delete
|
||||
# the provisions above, a recipient may use your version of this file under
|
||||
# the terms of any one of the MPL, the GPL or the LGPL.
|
||||
#
|
||||
# ***** END LICENSE BLOCK *****
|
||||
|
||||
#
|
||||
# Config stuff for AIX
|
||||
#
|
||||
|
||||
CC = xlC_r
|
||||
CCC = xlC_r
|
||||
CFLAGS += -qarch=com -qnoansialias -qinline+$(INLINES) -DXP_UNIX -DAIX -DAIXV3 -DSYSV -DAIX4_3 -DHAVE_LOCALTIME_R
|
||||
|
||||
RANLIB = ranlib
|
||||
|
||||
#.c.o:
|
||||
# $(CC) -c -MD $*.d $(CFLAGS) $<
|
||||
ARCH := aix
|
||||
CPU_ARCH = rs6000
|
||||
GFX_ARCH = x
|
||||
INLINES = js_compare_and_swap:js_fast_lock1:js_fast_unlock1:js_lock_get_slot:js_lock_set_slot:js_lock_scope1
|
||||
|
||||
#-lpthreads -lc_r
|
||||
|
||||
MKSHLIB_BIN = /usr/ibmcxx/bin/makeC++SharedLib_r
|
||||
MKSHLIB = $(MKSHLIB_BIN) -p 0 -G -berok -bM:UR
|
||||
|
||||
ifdef JS_THREADSAFE
|
||||
XLDFLAGS += -ldl
|
||||
endif
|
||||
|
||||
@@ -1,36 +0,0 @@
|
||||
/AIX4.1.mk/1.7/Sat Feb 12 20:10:33 2005//TJS_170
|
||||
/AIX4.2.mk/1.9/Sat Feb 12 20:10:33 2005//TJS_170
|
||||
/AIX4.3.mk/1.9/Sat Feb 12 20:10:33 2005//TJS_170
|
||||
/Darwin.mk/1.6/Mon Feb 5 16:24:49 2007//TJS_170
|
||||
/Darwin1.3.mk/1.3/Sat Feb 12 20:10:33 2005//TJS_170
|
||||
/Darwin1.4.mk/1.3/Sat Feb 12 20:10:33 2005//TJS_170
|
||||
/Darwin5.2.mk/1.3/Sat Feb 12 20:10:33 2005//TJS_170
|
||||
/Darwin5.3.mk/1.3/Sat Feb 12 20:10:33 2005//TJS_170
|
||||
/HP-UXB.10.10.mk/1.9/Sat Feb 12 20:10:33 2005//TJS_170
|
||||
/HP-UXB.10.20.mk/1.8/Sat Feb 12 20:10:33 2005//TJS_170
|
||||
/HP-UXB.11.00.mk/1.9/Sat Feb 12 20:10:33 2005//TJS_170
|
||||
/IRIX.mk/1.9/Sat Feb 12 20:10:33 2005//TJS_170
|
||||
/IRIX5.3.mk/1.7/Sat Feb 12 20:10:33 2005//TJS_170
|
||||
/IRIX6.1.mk/1.7/Sat Feb 12 20:10:33 2005//TJS_170
|
||||
/IRIX6.2.mk/1.6/Sat Feb 12 20:10:33 2005//TJS_170
|
||||
/IRIX6.3.mk/1.6/Sat Feb 12 20:10:33 2005//TJS_170
|
||||
/IRIX6.5.mk/1.6/Sat Feb 12 20:10:33 2005//TJS_170
|
||||
/Linux_All.mk/1.14/Tue May 10 19:53:44 2005//TJS_170
|
||||
/Mac_OS10.0.mk/1.4/Sat Feb 12 20:10:33 2005//TJS_170
|
||||
/OSF1V4.0.mk/1.9/Sat Feb 12 20:10:33 2005//TJS_170
|
||||
/OSF1V5.0.mk/1.5/Sat Feb 12 20:10:33 2005//TJS_170
|
||||
/SunOS4.1.4.mk/1.6/Sat Feb 12 20:10:33 2005//TJS_170
|
||||
/SunOS5.3.mk/1.7/Sat Feb 12 20:10:33 2005//TJS_170
|
||||
/SunOS5.4.mk/1.7/Sat Feb 12 20:10:33 2005//TJS_170
|
||||
/SunOS5.5.1.mk/1.8/Sat Feb 12 20:10:33 2005//TJS_170
|
||||
/SunOS5.5.mk/1.10/Sat Feb 12 20:10:33 2005//TJS_170
|
||||
/SunOS5.6.mk/1.13/Sat Feb 12 20:10:33 2005//TJS_170
|
||||
/SunOS5.7.mk/1.6/Sat Feb 12 20:10:33 2005//TJS_170
|
||||
/SunOS5.8.mk/1.4/Sat Feb 12 20:10:33 2005//TJS_170
|
||||
/SunOS5.9.mk/1.2/Sat Feb 12 20:10:33 2005//TJS_170
|
||||
/WINNT4.0.mk/1.15/Wed Jul 18 19:55:15 2007//TJS_170
|
||||
/WINNT5.0.mk/1.10/Fri Aug 10 23:23:38 2007//TJS_170
|
||||
/WINNT5.1.mk/1.6/Fri Aug 10 23:23:38 2007//TJS_170
|
||||
/WINNT5.2.mk/1.5/Fri Aug 10 23:23:38 2007//TJS_170
|
||||
/dgux.mk/1.7/Sat Feb 12 20:10:33 2005//TJS_170
|
||||
D
|
||||
@@ -1 +0,0 @@
|
||||
mozilla/js/src/config
|
||||
@@ -1 +0,0 @@
|
||||
:pserver:anonymous@cvs-mirror.mozilla.org:/cvsroot
|
||||
@@ -1 +0,0 @@
|
||||
NJS_170
|
||||
@@ -1,83 +0,0 @@
|
||||
# -*- Mode: makefile -*-
|
||||
#
|
||||
# ***** BEGIN LICENSE BLOCK *****
|
||||
# Version: MPL 1.1/GPL 2.0/LGPL 2.1
|
||||
#
|
||||
# The contents of this file are subject to the Mozilla Public License Version
|
||||
# 1.1 (the "License"); you may not use this file except in compliance with
|
||||
# the License. You may obtain a copy of the License at
|
||||
# http://www.mozilla.org/MPL/
|
||||
#
|
||||
# Software distributed under the License is distributed on an "AS IS" basis,
|
||||
# WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
|
||||
# for the specific language governing rights and limitations under the
|
||||
# License.
|
||||
#
|
||||
# The Original Code is Mozilla Communicator client code, released
|
||||
# March 31, 1998.
|
||||
#
|
||||
# The Initial Developer of the Original Code is
|
||||
# Netscape Communications Corporation.
|
||||
# Portions created by the Initial Developer are Copyright (C) 1998
|
||||
# the Initial Developer. All Rights Reserved.
|
||||
#
|
||||
# Contributor(s):
|
||||
# Steve Zellers (zellers@apple.com)
|
||||
#
|
||||
# Alternatively, the contents of this file may be used under the terms of
|
||||
# either the GNU General Public License Version 2 or later (the "GPL"), or
|
||||
# the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
|
||||
# in which case the provisions of the GPL or the LGPL are applicable instead
|
||||
# of those above. If you wish to allow use of your version of this file only
|
||||
# under the terms of either the GPL or the LGPL, and not to allow others to
|
||||
# use your version of this file under the terms of the MPL, indicate your
|
||||
# decision by deleting the provisions above and replace them with the notice
|
||||
# and other provisions required by the GPL or the LGPL. If you do not delete
|
||||
# the provisions above, a recipient may use your version of this file under
|
||||
# the terms of any one of the MPL, the GPL or the LGPL.
|
||||
#
|
||||
# ***** END LICENSE BLOCK *****
|
||||
|
||||
#
|
||||
# Config for Mac OS X as of PR3
|
||||
# Just ripped from Linux config
|
||||
#
|
||||
|
||||
CC = cc
|
||||
CCC = g++
|
||||
CFLAGS += -Wall -Wno-format
|
||||
OS_CFLAGS = -DXP_UNIX -DSVR4 -DSYSV -D_BSD_SOURCE -DPOSIX_SOURCE -DDARWIN
|
||||
|
||||
RANLIB = ranlib
|
||||
MKSHLIB = $(CC) -dynamiclib $(XMKSHLIBOPTS) -framework System
|
||||
|
||||
SO_SUFFIX = dylib
|
||||
|
||||
#.c.o:
|
||||
# $(CC) -c -MD $*.d $(CFLAGS) $<
|
||||
|
||||
CPU_ARCH = $(shell uname -m)
|
||||
ifeq (86,$(findstring 86,$(CPU_ARCH)))
|
||||
CPU_ARCH = x86
|
||||
OS_CFLAGS+= -DX86_LINUX
|
||||
endif
|
||||
GFX_ARCH = x
|
||||
|
||||
OS_LIBS = -lc -framework System
|
||||
|
||||
ASFLAGS += -x assembler-with-cpp
|
||||
|
||||
ifeq ($(CPU_ARCH),alpha)
|
||||
|
||||
# Ask the C compiler on alpha linux to let us work with denormalized
|
||||
# double values, which are required by the ECMA spec.
|
||||
|
||||
OS_CFLAGS += -mieee
|
||||
endif
|
||||
|
||||
# Use the editline library to provide line-editing support.
|
||||
JS_EDITLINE = 1
|
||||
|
||||
# Don't allow Makefile.ref to use libmath
|
||||
NO_LIBM = 1
|
||||
|
||||
@@ -1,81 +0,0 @@
|
||||
# -*- Mode: makefile -*-
|
||||
#
|
||||
# ***** BEGIN LICENSE BLOCK *****
|
||||
# Version: MPL 1.1/GPL 2.0/LGPL 2.1
|
||||
#
|
||||
# The contents of this file are subject to the Mozilla Public License Version
|
||||
# 1.1 (the "License"); you may not use this file except in compliance with
|
||||
# the License. You may obtain a copy of the License at
|
||||
# http://www.mozilla.org/MPL/
|
||||
#
|
||||
# Software distributed under the License is distributed on an "AS IS" basis,
|
||||
# WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
|
||||
# for the specific language governing rights and limitations under the
|
||||
# License.
|
||||
#
|
||||
# The Original Code is Mozilla Communicator client code, released
|
||||
# March 31, 1998.
|
||||
#
|
||||
# The Initial Developer of the Original Code is
|
||||
# Netscape Communications Corporation.
|
||||
# Portions created by the Initial Developer are Copyright (C) 1998
|
||||
# the Initial Developer. All Rights Reserved.
|
||||
#
|
||||
# Contributor(s):
|
||||
# Steve Zellers (zellers@apple.com)
|
||||
#
|
||||
# Alternatively, the contents of this file may be used under the terms of
|
||||
# either the GNU General Public License Version 2 or later (the "GPL"), or
|
||||
# the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
|
||||
# in which case the provisions of the GPL or the LGPL are applicable instead
|
||||
# of those above. If you wish to allow use of your version of this file only
|
||||
# under the terms of either the GPL or the LGPL, and not to allow others to
|
||||
# use your version of this file under the terms of the MPL, indicate your
|
||||
# decision by deleting the provisions above and replace them with the notice
|
||||
# and other provisions required by the GPL or the LGPL. If you do not delete
|
||||
# the provisions above, a recipient may use your version of this file under
|
||||
# the terms of any one of the MPL, the GPL or the LGPL.
|
||||
#
|
||||
# ***** END LICENSE BLOCK *****
|
||||
|
||||
#
|
||||
# Config for Mac OS X as of PR3
|
||||
# Just ripped from Linux config
|
||||
#
|
||||
|
||||
CC = cc
|
||||
CCC = g++
|
||||
CFLAGS += -Wall -Wno-format
|
||||
OS_CFLAGS = -DXP_UNIX -DSVR4 -DSYSV -D_BSD_SOURCE -DPOSIX_SOURCE -DRHAPSODY
|
||||
|
||||
RANLIB = ranlib
|
||||
MKSHLIB = libtool $(XMKSHLIBOPTS) -framework System
|
||||
|
||||
#.c.o:
|
||||
# $(CC) -c -MD $*.d $(CFLAGS) $<
|
||||
|
||||
CPU_ARCH = $(shell uname -m)
|
||||
ifeq (86,$(findstring 86,$(CPU_ARCH)))
|
||||
CPU_ARCH = x86
|
||||
OS_CFLAGS+= -DX86_LINUX
|
||||
endif
|
||||
GFX_ARCH = x
|
||||
|
||||
OS_LIBS = -lc -framework System
|
||||
|
||||
ASFLAGS += -x assembler-with-cpp
|
||||
|
||||
ifeq ($(CPU_ARCH),alpha)
|
||||
|
||||
# Ask the C compiler on alpha linux to let us work with denormalized
|
||||
# double values, which are required by the ECMA spec.
|
||||
|
||||
OS_CFLAGS += -mieee
|
||||
endif
|
||||
|
||||
# Use the editline library to provide line-editing support.
|
||||
JS_EDITLINE = 1
|
||||
|
||||
# Don't allow Makefile.ref to use libmath
|
||||
NO_LIBM = 1
|
||||
|
||||
@@ -1,41 +0,0 @@
|
||||
# -*- Mode: makefile -*-
|
||||
#
|
||||
# ***** BEGIN LICENSE BLOCK *****
|
||||
# Version: MPL 1.1/GPL 2.0/LGPL 2.1
|
||||
#
|
||||
# The contents of this file are subject to the Mozilla Public License Version
|
||||
# 1.1 (the "License"); you may not use this file except in compliance with
|
||||
# the License. You may obtain a copy of the License at
|
||||
# http://www.mozilla.org/MPL/
|
||||
#
|
||||
# Software distributed under the License is distributed on an "AS IS" basis,
|
||||
# WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
|
||||
# for the specific language governing rights and limitations under the
|
||||
# License.
|
||||
#
|
||||
# The Original Code is Mozilla Communicator client code, released
|
||||
# March 31, 1998.
|
||||
#
|
||||
# The Initial Developer of the Original Code is
|
||||
# Netscape Communications Corporation.
|
||||
# Portions created by the Initial Developer are Copyright (C) 1998
|
||||
# the Initial Developer. All Rights Reserved.
|
||||
#
|
||||
# Contributor(s):
|
||||
# Mike McCabe <mike+mozilla@meer.net>
|
||||
#
|
||||
# Alternatively, the contents of this file may be used under the terms of
|
||||
# either the GNU General Public License Version 2 or later (the "GPL"), or
|
||||
# the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
|
||||
# in which case the provisions of the GPL or the LGPL are applicable instead
|
||||
# of those above. If you wish to allow use of your version of this file only
|
||||
# under the terms of either the GPL or the LGPL, and not to allow others to
|
||||
# use your version of this file under the terms of the MPL, indicate your
|
||||
# decision by deleting the provisions above and replace them with the notice
|
||||
# and other provisions required by the GPL or the LGPL. If you do not delete
|
||||
# the provisions above, a recipient may use your version of this file under
|
||||
# the terms of any one of the MPL, the GPL or the LGPL.
|
||||
#
|
||||
# ***** END LICENSE BLOCK *****
|
||||
|
||||
include $(DEPTH)/config/Darwin1.3.mk
|
||||
@@ -1,81 +0,0 @@
|
||||
# -*- Mode: makefile -*-
|
||||
#
|
||||
# ***** BEGIN LICENSE BLOCK *****
|
||||
# Version: MPL 1.1/GPL 2.0/LGPL 2.1
|
||||
#
|
||||
# The contents of this file are subject to the Mozilla Public License Version
|
||||
# 1.1 (the "License"); you may not use this file except in compliance with
|
||||
# the License. You may obtain a copy of the License at
|
||||
# http://www.mozilla.org/MPL/
|
||||
#
|
||||
# Software distributed under the License is distributed on an "AS IS" basis,
|
||||
# WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
|
||||
# for the specific language governing rights and limitations under the
|
||||
# License.
|
||||
#
|
||||
# The Original Code is Mozilla Communicator client code, released
|
||||
# March 31, 1998.
|
||||
#
|
||||
# The Initial Developer of the Original Code is
|
||||
# Netscape Communications Corporation.
|
||||
# Portions created by the Initial Developer are Copyright (C) 1998
|
||||
# the Initial Developer. All Rights Reserved.
|
||||
#
|
||||
# Contributor(s):
|
||||
# Steve Zellers (zellers@apple.com)
|
||||
#
|
||||
# Alternatively, the contents of this file may be used under the terms of
|
||||
# either the GNU General Public License Version 2 or later (the "GPL"), or
|
||||
# the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
|
||||
# in which case the provisions of the GPL or the LGPL are applicable instead
|
||||
# of those above. If you wish to allow use of your version of this file only
|
||||
# under the terms of either the GPL or the LGPL, and not to allow others to
|
||||
# use your version of this file under the terms of the MPL, indicate your
|
||||
# decision by deleting the provisions above and replace them with the notice
|
||||
# and other provisions required by the GPL or the LGPL. If you do not delete
|
||||
# the provisions above, a recipient may use your version of this file under
|
||||
# the terms of any one of the MPL, the GPL or the LGPL.
|
||||
#
|
||||
# ***** END LICENSE BLOCK *****
|
||||
|
||||
#
|
||||
# Config for Mac OS X as of PR3
|
||||
# Just ripped from Linux config
|
||||
#
|
||||
|
||||
CC = cc
|
||||
CCC = g++
|
||||
CFLAGS += -Wall -Wno-format
|
||||
OS_CFLAGS = -DXP_UNIX -DSVR4 -DSYSV -D_BSD_SOURCE -DPOSIX_SOURCE -DDARWIN
|
||||
|
||||
RANLIB = ranlib
|
||||
MKSHLIB = libtool $(XMKSHLIBOPTS) -framework System
|
||||
|
||||
#.c.o:
|
||||
# $(CC) -c -MD $*.d $(CFLAGS) $<
|
||||
|
||||
CPU_ARCH = $(shell uname -m)
|
||||
ifeq (86,$(findstring 86,$(CPU_ARCH)))
|
||||
CPU_ARCH = x86
|
||||
OS_CFLAGS+= -DX86_LINUX
|
||||
endif
|
||||
GFX_ARCH = x
|
||||
|
||||
OS_LIBS = -lc -framework System
|
||||
|
||||
ASFLAGS += -x assembler-with-cpp
|
||||
|
||||
ifeq ($(CPU_ARCH),alpha)
|
||||
|
||||
# Ask the C compiler on alpha linux to let us work with denormalized
|
||||
# double values, which are required by the ECMA spec.
|
||||
|
||||
OS_CFLAGS += -mieee
|
||||
endif
|
||||
|
||||
# Use the editline library to provide line-editing support.
|
||||
JS_EDITLINE = 1
|
||||
|
||||
# Don't allow Makefile.ref to use libmath
|
||||
NO_LIBM = 1
|
||||
|
||||
@@ -1,81 +0,0 @@
|
||||
# -*- Mode: makefile -*-
|
||||
#
|
||||
# ***** BEGIN LICENSE BLOCK *****
|
||||
# Version: MPL 1.1/GPL 2.0/LGPL 2.1
|
||||
#
|
||||
# The contents of this file are subject to the Mozilla Public License Version
|
||||
# 1.1 (the "License"); you may not use this file except in compliance with
|
||||
# the License. You may obtain a copy of the License at
|
||||
# http://www.mozilla.org/MPL/
|
||||
#
|
||||
# Software distributed under the License is distributed on an "AS IS" basis,
|
||||
# WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
|
||||
# for the specific language governing rights and limitations under the
|
||||
# License.
|
||||
#
|
||||
# The Original Code is Mozilla Communicator client code, released
|
||||
# March 31, 1998.
|
||||
#
|
||||
# The Initial Developer of the Original Code is
|
||||
# Netscape Communications Corporation.
|
||||
# Portions created by the Initial Developer are Copyright (C) 1998
|
||||
# the Initial Developer. All Rights Reserved.
|
||||
#
|
||||
# Contributor(s):
|
||||
# Steve Zellers (zellers@apple.com)
|
||||
#
|
||||
# Alternatively, the contents of this file may be used under the terms of
|
||||
# either the GNU General Public License Version 2 or later (the "GPL"), or
|
||||
# the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
|
||||
# in which case the provisions of the GPL or the LGPL are applicable instead
|
||||
# of those above. If you wish to allow use of your version of this file only
|
||||
# under the terms of either the GPL or the LGPL, and not to allow others to
|
||||
# use your version of this file under the terms of the MPL, indicate your
|
||||
# decision by deleting the provisions above and replace them with the notice
|
||||
# and other provisions required by the GPL or the LGPL. If you do not delete
|
||||
# the provisions above, a recipient may use your version of this file under
|
||||
# the terms of any one of the MPL, the GPL or the LGPL.
|
||||
#
|
||||
# ***** END LICENSE BLOCK *****
|
||||
|
||||
#
|
||||
# Config for Mac OS X as of PR3
|
||||
# Just ripped from Linux config
|
||||
#
|
||||
|
||||
CC = cc
|
||||
CCC = g++
|
||||
CFLAGS += -Wall -Wno-format
|
||||
OS_CFLAGS = -DXP_UNIX -DSVR4 -DSYSV -D_BSD_SOURCE -DPOSIX_SOURCE -DDARWIN
|
||||
|
||||
RANLIB = ranlib
|
||||
MKSHLIB = libtool $(XMKSHLIBOPTS) -framework System
|
||||
|
||||
#.c.o:
|
||||
# $(CC) -c -MD $*.d $(CFLAGS) $<
|
||||
|
||||
CPU_ARCH = $(shell uname -m)
|
||||
ifeq (86,$(findstring 86,$(CPU_ARCH)))
|
||||
CPU_ARCH = x86
|
||||
OS_CFLAGS+= -DX86_LINUX
|
||||
endif
|
||||
GFX_ARCH = x
|
||||
|
||||
OS_LIBS = -lc -framework System
|
||||
|
||||
ASFLAGS += -x assembler-with-cpp
|
||||
|
||||
ifeq ($(CPU_ARCH),alpha)
|
||||
|
||||
# Ask the C compiler on alpha linux to let us work with denormalized
|
||||
# double values, which are required by the ECMA spec.
|
||||
|
||||
OS_CFLAGS += -mieee
|
||||
endif
|
||||
|
||||
# Use the editline library to provide line-editing support.
|
||||
JS_EDITLINE = 1
|
||||
|
||||
# Don't allow Makefile.ref to use libmath
|
||||
NO_LIBM = 1
|
||||
|
||||
@@ -1,77 +0,0 @@
|
||||
# -*- Mode: makefile -*-
|
||||
#
|
||||
# ***** BEGIN LICENSE BLOCK *****
|
||||
# Version: MPL 1.1/GPL 2.0/LGPL 2.1
|
||||
#
|
||||
# The contents of this file are subject to the Mozilla Public License Version
|
||||
# 1.1 (the "License"); you may not use this file except in compliance with
|
||||
# the License. You may obtain a copy of the License at
|
||||
# http://www.mozilla.org/MPL/
|
||||
#
|
||||
# Software distributed under the License is distributed on an "AS IS" basis,
|
||||
# WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
|
||||
# for the specific language governing rights and limitations under the
|
||||
# License.
|
||||
#
|
||||
# The Original Code is Mozilla Communicator client code, released
|
||||
# March 31, 1998.
|
||||
#
|
||||
# The Initial Developer of the Original Code is
|
||||
# Netscape Communications Corporation.
|
||||
# Portions created by the Initial Developer are Copyright (C) 1998
|
||||
# the Initial Developer. All Rights Reserved.
|
||||
#
|
||||
# Contributor(s):
|
||||
#
|
||||
# Alternatively, the contents of this file may be used under the terms of
|
||||
# either the GNU General Public License Version 2 or later (the "GPL"), or
|
||||
# the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
|
||||
# in which case the provisions of the GPL or the LGPL are applicable instead
|
||||
# of those above. If you wish to allow use of your version of this file only
|
||||
# under the terms of either the GPL or the LGPL, and not to allow others to
|
||||
# use your version of this file under the terms of the MPL, indicate your
|
||||
# decision by deleting the provisions above and replace them with the notice
|
||||
# and other provisions required by the GPL or the LGPL. If you do not delete
|
||||
# the provisions above, a recipient may use your version of this file under
|
||||
# the terms of any one of the MPL, the GPL or the LGPL.
|
||||
#
|
||||
# ***** END LICENSE BLOCK *****
|
||||
|
||||
#
|
||||
# Config stuff for HPUX
|
||||
#
|
||||
|
||||
# CC = gcc
|
||||
# CCC = g++
|
||||
# CFLAGS += -Wall -Wno-format -fPIC
|
||||
|
||||
CC = cc -Ae +Z
|
||||
CCC = CC -Ae +a1 +eh +Z
|
||||
|
||||
RANLIB = echo
|
||||
MKSHLIB = $(LD) -b
|
||||
|
||||
SO_SUFFIX = sl
|
||||
|
||||
#.c.o:
|
||||
# $(CC) -c -MD $*.d $(CFLAGS) $<
|
||||
|
||||
CPU_ARCH = hppa
|
||||
GFX_ARCH = x
|
||||
|
||||
OS_CFLAGS = -DXP_UNIX -DHPUX -DSYSV -DHAVE_LOCALTIME_R
|
||||
OS_LIBS = -ldld
|
||||
|
||||
ifeq ($(OS_RELEASE),B.10)
|
||||
PLATFORM_FLAGS += -DHPUX10 -Dhpux10
|
||||
PORT_FLAGS += -DRW_NO_OVERLOAD_SCHAR -DHAVE_MODEL_H
|
||||
ifeq ($(OS_VERSION),.10)
|
||||
PLATFORM_FLAGS += -DHPUX10_10
|
||||
endif
|
||||
ifeq ($(OS_VERSION),.20)
|
||||
PLATFORM_FLAGS += -DHPUX10_20
|
||||
endif
|
||||
ifeq ($(OS_VERSION),.30)
|
||||
PLATFORM_FLAGS += -DHPUX10_30
|
||||
endif
|
||||
endif
|
||||
@@ -1,77 +0,0 @@
|
||||
# -*- Mode: makefile -*-
|
||||
#
|
||||
# ***** BEGIN LICENSE BLOCK *****
|
||||
# Version: MPL 1.1/GPL 2.0/LGPL 2.1
|
||||
#
|
||||
# The contents of this file are subject to the Mozilla Public License Version
|
||||
# 1.1 (the "License"); you may not use this file except in compliance with
|
||||
# the License. You may obtain a copy of the License at
|
||||
# http://www.mozilla.org/MPL/
|
||||
#
|
||||
# Software distributed under the License is distributed on an "AS IS" basis,
|
||||
# WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
|
||||
# for the specific language governing rights and limitations under the
|
||||
# License.
|
||||
#
|
||||
# The Original Code is Mozilla Communicator client code, released
|
||||
# March 31, 1998.
|
||||
#
|
||||
# The Initial Developer of the Original Code is
|
||||
# Netscape Communications Corporation.
|
||||
# Portions created by the Initial Developer are Copyright (C) 1998
|
||||
# the Initial Developer. All Rights Reserved.
|
||||
#
|
||||
# Contributor(s):
|
||||
#
|
||||
# Alternatively, the contents of this file may be used under the terms of
|
||||
# either the GNU General Public License Version 2 or later (the "GPL"), or
|
||||
# the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
|
||||
# in which case the provisions of the GPL or the LGPL are applicable instead
|
||||
# of those above. If you wish to allow use of your version of this file only
|
||||
# under the terms of either the GPL or the LGPL, and not to allow others to
|
||||
# use your version of this file under the terms of the MPL, indicate your
|
||||
# decision by deleting the provisions above and replace them with the notice
|
||||
# and other provisions required by the GPL or the LGPL. If you do not delete
|
||||
# the provisions above, a recipient may use your version of this file under
|
||||
# the terms of any one of the MPL, the GPL or the LGPL.
|
||||
#
|
||||
# ***** END LICENSE BLOCK *****
|
||||
|
||||
#
|
||||
# Config stuff for HPUX
|
||||
#
|
||||
|
||||
# CC = gcc
|
||||
# CCC = g++
|
||||
# CFLAGS += -Wall -Wno-format -fPIC
|
||||
|
||||
CC = cc -Ae +Z
|
||||
CCC = CC -Ae +a1 +eh +Z
|
||||
|
||||
RANLIB = echo
|
||||
MKSHLIB = $(LD) -b
|
||||
|
||||
SO_SUFFIX = sl
|
||||
|
||||
#.c.o:
|
||||
# $(CC) -c -MD $*.d $(CFLAGS) $<
|
||||
|
||||
CPU_ARCH = hppa
|
||||
GFX_ARCH = x
|
||||
|
||||
OS_CFLAGS = -DXP_UNIX -DHPUX -DSYSV -DHAVE_LOCALTIME_R
|
||||
OS_LIBS = -ldld
|
||||
|
||||
ifeq ($(OS_RELEASE),B.10)
|
||||
PLATFORM_FLAGS += -DHPUX10 -Dhpux10
|
||||
PORT_FLAGS += -DRW_NO_OVERLOAD_SCHAR -DHAVE_MODEL_H
|
||||
ifeq ($(OS_VERSION),.10)
|
||||
PLATFORM_FLAGS += -DHPUX10_10
|
||||
endif
|
||||
ifeq ($(OS_VERSION),.20)
|
||||
PLATFORM_FLAGS += -DHPUX10_20
|
||||
endif
|
||||
ifeq ($(OS_VERSION),.30)
|
||||
PLATFORM_FLAGS += -DHPUX10_30
|
||||
endif
|
||||
endif
|
||||
@@ -1,80 +0,0 @@
|
||||
# -*- Mode: makefile -*-
|
||||
#
|
||||
# ***** BEGIN LICENSE BLOCK *****
|
||||
# Version: MPL 1.1/GPL 2.0/LGPL 2.1
|
||||
#
|
||||
# The contents of this file are subject to the Mozilla Public License Version
|
||||
# 1.1 (the "License"); you may not use this file except in compliance with
|
||||
# the License. You may obtain a copy of the License at
|
||||
# http://www.mozilla.org/MPL/
|
||||
#
|
||||
# Software distributed under the License is distributed on an "AS IS" basis,
|
||||
# WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
|
||||
# for the specific language governing rights and limitations under the
|
||||
# License.
|
||||
#
|
||||
# The Original Code is Mozilla Communicator client code, released
|
||||
# March 31, 1998.
|
||||
#
|
||||
# The Initial Developer of the Original Code is
|
||||
# Netscape Communications Corporation.
|
||||
# Portions created by the Initial Developer are Copyright (C) 1998
|
||||
# the Initial Developer. All Rights Reserved.
|
||||
#
|
||||
# Contributor(s):
|
||||
#
|
||||
# Alternatively, the contents of this file may be used under the terms of
|
||||
# either the GNU General Public License Version 2 or later (the "GPL"), or
|
||||
# the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
|
||||
# in which case the provisions of the GPL or the LGPL are applicable instead
|
||||
# of those above. If you wish to allow use of your version of this file only
|
||||
# under the terms of either the GPL or the LGPL, and not to allow others to
|
||||
# use your version of this file under the terms of the MPL, indicate your
|
||||
# decision by deleting the provisions above and replace them with the notice
|
||||
# and other provisions required by the GPL or the LGPL. If you do not delete
|
||||
# the provisions above, a recipient may use your version of this file under
|
||||
# the terms of any one of the MPL, the GPL or the LGPL.
|
||||
#
|
||||
# ***** END LICENSE BLOCK *****
|
||||
|
||||
#
|
||||
# Config stuff for HPUX
|
||||
#
|
||||
|
||||
ifdef NS_USE_NATIVE
|
||||
CC = cc +Z +DAportable +DS2.0 +u4
|
||||
# LD = aCC +Z -b -Wl,+s -Wl,-B,symbolic
|
||||
else
|
||||
CC = gcc -Wall -Wno-format -fPIC
|
||||
CCC = g++ -Wall -Wno-format -fPIC
|
||||
endif
|
||||
|
||||
RANLIB = echo
|
||||
MKSHLIB = $(LD) -b
|
||||
|
||||
SO_SUFFIX = sl
|
||||
|
||||
#.c.o:
|
||||
# $(CC) -c -MD $*.d $(CFLAGS) $<
|
||||
|
||||
CPU_ARCH = hppa
|
||||
GFX_ARCH = x
|
||||
|
||||
OS_CFLAGS = -DXP_UNIX -DHPUX -DSYSV -D_HPUX -DNATIVE -D_POSIX_C_SOURCE=199506L -DHAVE_LOCALTIME_R
|
||||
OS_LIBS = -ldld
|
||||
|
||||
XLDFLAGS = -lpthread
|
||||
|
||||
ifeq ($(OS_RELEASE),B.10)
|
||||
PLATFORM_FLAGS += -DHPUX10 -Dhpux10
|
||||
PORT_FLAGS += -DRW_NO_OVERLOAD_SCHAR -DHAVE_MODEL_H
|
||||
ifeq ($(OS_VERSION),.10)
|
||||
PLATFORM_FLAGS += -DHPUX10_10
|
||||
endif
|
||||
ifeq ($(OS_VERSION),.20)
|
||||
PLATFORM_FLAGS += -DHPUX10_20
|
||||
endif
|
||||
ifeq ($(OS_VERSION),.30)
|
||||
PLATFORM_FLAGS += -DHPUX10_30
|
||||
endif
|
||||
endif
|
||||
@@ -1,87 +0,0 @@
|
||||
# -*- Mode: makefile -*-
|
||||
#
|
||||
# ***** BEGIN LICENSE BLOCK *****
|
||||
# Version: MPL 1.1/GPL 2.0/LGPL 2.1
|
||||
#
|
||||
# The contents of this file are subject to the Mozilla Public License Version
|
||||
# 1.1 (the "License"); you may not use this file except in compliance with
|
||||
# the License. You may obtain a copy of the License at
|
||||
# http://www.mozilla.org/MPL/
|
||||
#
|
||||
# Software distributed under the License is distributed on an "AS IS" basis,
|
||||
# WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
|
||||
# for the specific language governing rights and limitations under the
|
||||
# License.
|
||||
#
|
||||
# The Original Code is Mozilla Communicator client code, released
|
||||
# March 31, 1998.
|
||||
#
|
||||
# The Initial Developer of the Original Code is
|
||||
# Netscape Communications Corporation.
|
||||
# Portions created by the Initial Developer are Copyright (C) 1998
|
||||
# the Initial Developer. All Rights Reserved.
|
||||
#
|
||||
# Contributor(s):
|
||||
#
|
||||
# Alternatively, the contents of this file may be used under the terms of
|
||||
# either the GNU General Public License Version 2 or later (the "GPL"), or
|
||||
# the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
|
||||
# in which case the provisions of the GPL or the LGPL are applicable instead
|
||||
# of those above. If you wish to allow use of your version of this file only
|
||||
# under the terms of either the GPL or the LGPL, and not to allow others to
|
||||
# use your version of this file under the terms of the MPL, indicate your
|
||||
# decision by deleting the provisions above and replace them with the notice
|
||||
# and other provisions required by the GPL or the LGPL. If you do not delete
|
||||
# the provisions above, a recipient may use your version of this file under
|
||||
# the terms of any one of the MPL, the GPL or the LGPL.
|
||||
#
|
||||
# ***** END LICENSE BLOCK *****
|
||||
|
||||
#
|
||||
# Config stuff for IRIX
|
||||
#
|
||||
|
||||
CPU_ARCH = mips
|
||||
GFX_ARCH = x
|
||||
|
||||
RANLIB = /bin/true
|
||||
|
||||
#NS_USE_GCC = 1
|
||||
|
||||
ifndef NS_USE_NATIVE
|
||||
CC = gcc
|
||||
CCC = g++
|
||||
AS = $(CC) -x assembler-with-cpp
|
||||
ODD_CFLAGS = -Wall -Wno-format
|
||||
ifdef BUILD_OPT
|
||||
OPTIMIZER = -O6
|
||||
endif
|
||||
else
|
||||
ifeq ($(OS_RELEASE),6.2)
|
||||
CC = cc -n32 -DIRIX6_2
|
||||
endif
|
||||
ifeq ($(OS_RELEASE),6.3)
|
||||
CC = cc -n32 -DIRIX6_3
|
||||
endif
|
||||
ifeq ($(OS_RELEASE),6.5)
|
||||
CC = cc -n32 -DIRIX6_5
|
||||
endif
|
||||
CCC = CC
|
||||
# LD = CC
|
||||
ODD_CFLAGS = -fullwarn -xansi
|
||||
ifdef BUILD_OPT
|
||||
OPTIMIZER += -Olimit 4000
|
||||
endif
|
||||
endif
|
||||
|
||||
# For purify
|
||||
HAVE_PURIFY = 1
|
||||
PURE_OS_CFLAGS = $(ODD_CFLAGS) -DXP_UNIX -DSVR4 -DSW_THREADS -DIRIX -DHAVE_LOCALTIME_R
|
||||
|
||||
OS_CFLAGS = $(PURE_OS_CFLAGS) -MDupdate $(DEPENDENCIES)
|
||||
|
||||
BSDECHO = echo
|
||||
MKSHLIB = $(LD) -n32 -shared
|
||||
|
||||
# Use the editline library to provide line-editing support.
|
||||
JS_EDITLINE = 1
|
||||
@@ -1,44 +0,0 @@
|
||||
# -*- Mode: makefile -*-
|
||||
#
|
||||
# ***** BEGIN LICENSE BLOCK *****
|
||||
# Version: MPL 1.1/GPL 2.0/LGPL 2.1
|
||||
#
|
||||
# The contents of this file are subject to the Mozilla Public License Version
|
||||
# 1.1 (the "License"); you may not use this file except in compliance with
|
||||
# the License. You may obtain a copy of the License at
|
||||
# http://www.mozilla.org/MPL/
|
||||
#
|
||||
# Software distributed under the License is distributed on an "AS IS" basis,
|
||||
# WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
|
||||
# for the specific language governing rights and limitations under the
|
||||
# License.
|
||||
#
|
||||
# The Original Code is Mozilla Communicator client code, released
|
||||
# March 31, 1998.
|
||||
#
|
||||
# The Initial Developer of the Original Code is
|
||||
# Netscape Communications Corporation.
|
||||
# Portions created by the Initial Developer are Copyright (C) 1998
|
||||
# the Initial Developer. All Rights Reserved.
|
||||
#
|
||||
# Contributor(s):
|
||||
#
|
||||
# Alternatively, the contents of this file may be used under the terms of
|
||||
# either the GNU General Public License Version 2 or later (the "GPL"), or
|
||||
# the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
|
||||
# in which case the provisions of the GPL or the LGPL are applicable instead
|
||||
# of those above. If you wish to allow use of your version of this file only
|
||||
# under the terms of either the GPL or the LGPL, and not to allow others to
|
||||
# use your version of this file under the terms of the MPL, indicate your
|
||||
# decision by deleting the provisions above and replace them with the notice
|
||||
# and other provisions required by the GPL or the LGPL. If you do not delete
|
||||
# the provisions above, a recipient may use your version of this file under
|
||||
# the terms of any one of the MPL, the GPL or the LGPL.
|
||||
#
|
||||
# ***** END LICENSE BLOCK *****
|
||||
|
||||
#
|
||||
# Config stuff for IRIX5.3
|
||||
#
|
||||
|
||||
include $(DEPTH)/config/IRIX.mk
|
||||
@@ -1,44 +0,0 @@
|
||||
# -*- Mode: makefile -*-
|
||||
#
|
||||
# ***** BEGIN LICENSE BLOCK *****
|
||||
# Version: MPL 1.1/GPL 2.0/LGPL 2.1
|
||||
#
|
||||
# The contents of this file are subject to the Mozilla Public License Version
|
||||
# 1.1 (the "License"); you may not use this file except in compliance with
|
||||
# the License. You may obtain a copy of the License at
|
||||
# http://www.mozilla.org/MPL/
|
||||
#
|
||||
# Software distributed under the License is distributed on an "AS IS" basis,
|
||||
# WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
|
||||
# for the specific language governing rights and limitations under the
|
||||
# License.
|
||||
#
|
||||
# The Original Code is Mozilla Communicator client code, released
|
||||
# March 31, 1998.
|
||||
#
|
||||
# The Initial Developer of the Original Code is
|
||||
# Netscape Communications Corporation.
|
||||
# Portions created by the Initial Developer are Copyright (C) 1998
|
||||
# the Initial Developer. All Rights Reserved.
|
||||
#
|
||||
# Contributor(s):
|
||||
#
|
||||
# Alternatively, the contents of this file may be used under the terms of
|
||||
# either the GNU General Public License Version 2 or later (the "GPL"), or
|
||||
# the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
|
||||
# in which case the provisions of the GPL or the LGPL are applicable instead
|
||||
# of those above. If you wish to allow use of your version of this file only
|
||||
# under the terms of either the GPL or the LGPL, and not to allow others to
|
||||
# use your version of this file under the terms of the MPL, indicate your
|
||||
# decision by deleting the provisions above and replace them with the notice
|
||||
# and other provisions required by the GPL or the LGPL. If you do not delete
|
||||
# the provisions above, a recipient may use your version of this file under
|
||||
# the terms of any one of the MPL, the GPL or the LGPL.
|
||||
#
|
||||
# ***** END LICENSE BLOCK *****
|
||||
|
||||
#
|
||||
# Config stuff for IRIX6.3
|
||||
#
|
||||
|
||||
include $(DEPTH)/config/IRIX.mk
|
||||
@@ -1,44 +0,0 @@
|
||||
# -*- Mode: makefile -*-
|
||||
#
|
||||
# ***** BEGIN LICENSE BLOCK *****
|
||||
# Version: MPL 1.1/GPL 2.0/LGPL 2.1
|
||||
#
|
||||
# The contents of this file are subject to the Mozilla Public License Version
|
||||
# 1.1 (the "License"); you may not use this file except in compliance with
|
||||
# the License. You may obtain a copy of the License at
|
||||
# http://www.mozilla.org/MPL/
|
||||
#
|
||||
# Software distributed under the License is distributed on an "AS IS" basis,
|
||||
# WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
|
||||
# for the specific language governing rights and limitations under the
|
||||
# License.
|
||||
#
|
||||
# The Original Code is Mozilla Communicator client code, released
|
||||
# March 31, 1998.
|
||||
#
|
||||
# The Initial Developer of the Original Code is
|
||||
# Netscape Communications Corporation.
|
||||
# Portions created by the Initial Developer are Copyright (C) 1998
|
||||
# the Initial Developer. All Rights Reserved.
|
||||
#
|
||||
# Contributor(s):
|
||||
#
|
||||
# Alternatively, the contents of this file may be used under the terms of
|
||||
# either the GNU General Public License Version 2 or later (the "GPL"), or
|
||||
# the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
|
||||
# in which case the provisions of the GPL or the LGPL are applicable instead
|
||||
# of those above. If you wish to allow use of your version of this file only
|
||||
# under the terms of either the GPL or the LGPL, and not to allow others to
|
||||
# use your version of this file under the terms of the MPL, indicate your
|
||||
# decision by deleting the provisions above and replace them with the notice
|
||||
# and other provisions required by the GPL or the LGPL. If you do not delete
|
||||
# the provisions above, a recipient may use your version of this file under
|
||||
# the terms of any one of the MPL, the GPL or the LGPL.
|
||||
#
|
||||
# ***** END LICENSE BLOCK *****
|
||||
|
||||
#
|
||||
# Config stuff for IRIX6.3
|
||||
#
|
||||
|
||||
include $(DEPTH)/config/IRIX.mk
|
||||
@@ -1,44 +0,0 @@
|
||||
# -*- Mode: makefile -*-
|
||||
#
|
||||
# ***** BEGIN LICENSE BLOCK *****
|
||||
# Version: MPL 1.1/GPL 2.0/LGPL 2.1
|
||||
#
|
||||
# The contents of this file are subject to the Mozilla Public License Version
|
||||
# 1.1 (the "License"); you may not use this file except in compliance with
|
||||
# the License. You may obtain a copy of the License at
|
||||
# http://www.mozilla.org/MPL/
|
||||
#
|
||||
# Software distributed under the License is distributed on an "AS IS" basis,
|
||||
# WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
|
||||
# for the specific language governing rights and limitations under the
|
||||
# License.
|
||||
#
|
||||
# The Original Code is Mozilla Communicator client code, released
|
||||
# March 31, 1998.
|
||||
#
|
||||
# The Initial Developer of the Original Code is
|
||||
# Netscape Communications Corporation.
|
||||
# Portions created by the Initial Developer are Copyright (C) 1998
|
||||
# the Initial Developer. All Rights Reserved.
|
||||
#
|
||||
# Contributor(s):
|
||||
#
|
||||
# Alternatively, the contents of this file may be used under the terms of
|
||||
# either the GNU General Public License Version 2 or later (the "GPL"), or
|
||||
# the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
|
||||
# in which case the provisions of the GPL or the LGPL are applicable instead
|
||||
# of those above. If you wish to allow use of your version of this file only
|
||||
# under the terms of either the GPL or the LGPL, and not to allow others to
|
||||
# use your version of this file under the terms of the MPL, indicate your
|
||||
# decision by deleting the provisions above and replace them with the notice
|
||||
# and other provisions required by the GPL or the LGPL. If you do not delete
|
||||
# the provisions above, a recipient may use your version of this file under
|
||||
# the terms of any one of the MPL, the GPL or the LGPL.
|
||||
#
|
||||
# ***** END LICENSE BLOCK *****
|
||||
|
||||
#
|
||||
# Config stuff for IRIX6.3
|
||||
#
|
||||
|
||||
include $(DEPTH)/config/IRIX.mk
|
||||
@@ -1,44 +0,0 @@
|
||||
# -*- Mode: makefile -*-
|
||||
#
|
||||
# ***** BEGIN LICENSE BLOCK *****
|
||||
# Version: MPL 1.1/GPL 2.0/LGPL 2.1
|
||||
#
|
||||
# The contents of this file are subject to the Mozilla Public License Version
|
||||
# 1.1 (the "License"); you may not use this file except in compliance with
|
||||
# the License. You may obtain a copy of the License at
|
||||
# http://www.mozilla.org/MPL/
|
||||
#
|
||||
# Software distributed under the License is distributed on an "AS IS" basis,
|
||||
# WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
|
||||
# for the specific language governing rights and limitations under the
|
||||
# License.
|
||||
#
|
||||
# The Original Code is Mozilla Communicator client code, released
|
||||
# March 31, 1998.
|
||||
#
|
||||
# The Initial Developer of the Original Code is
|
||||
# Netscape Communications Corporation.
|
||||
# Portions created by the Initial Developer are Copyright (C) 1998
|
||||
# the Initial Developer. All Rights Reserved.
|
||||
#
|
||||
# Contributor(s):
|
||||
#
|
||||
# Alternatively, the contents of this file may be used under the terms of
|
||||
# either the GNU General Public License Version 2 or later (the "GPL"), or
|
||||
# the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
|
||||
# in which case the provisions of the GPL or the LGPL are applicable instead
|
||||
# of those above. If you wish to allow use of your version of this file only
|
||||
# under the terms of either the GPL or the LGPL, and not to allow others to
|
||||
# use your version of this file under the terms of the MPL, indicate your
|
||||
# decision by deleting the provisions above and replace them with the notice
|
||||
# and other provisions required by the GPL or the LGPL. If you do not delete
|
||||
# the provisions above, a recipient may use your version of this file under
|
||||
# the terms of any one of the MPL, the GPL or the LGPL.
|
||||
#
|
||||
# ***** END LICENSE BLOCK *****
|
||||
|
||||
#
|
||||
# Config stuff for IRIX6.3
|
||||
#
|
||||
|
||||
include $(DEPTH)/config/IRIX.mk
|
||||
@@ -1,103 +0,0 @@
|
||||
# -*- Mode: makefile -*-
|
||||
#
|
||||
# ***** BEGIN LICENSE BLOCK *****
|
||||
# Version: MPL 1.1/GPL 2.0/LGPL 2.1
|
||||
#
|
||||
# The contents of this file are subject to the Mozilla Public License Version
|
||||
# 1.1 (the "License"); you may not use this file except in compliance with
|
||||
# the License. You may obtain a copy of the License at
|
||||
# http://www.mozilla.org/MPL/
|
||||
#
|
||||
# Software distributed under the License is distributed on an "AS IS" basis,
|
||||
# WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
|
||||
# for the specific language governing rights and limitations under the
|
||||
# License.
|
||||
#
|
||||
# The Original Code is Mozilla Communicator client code, released
|
||||
# March 31, 1998.
|
||||
#
|
||||
# The Initial Developer of the Original Code is
|
||||
# Netscape Communications Corporation.
|
||||
# Portions created by the Initial Developer are Copyright (C) 1998
|
||||
# the Initial Developer. All Rights Reserved.
|
||||
#
|
||||
# Contributor(s):
|
||||
#
|
||||
# Alternatively, the contents of this file may be used under the terms of
|
||||
# either the GNU General Public License Version 2 or later (the "GPL"), or
|
||||
# the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
|
||||
# in which case the provisions of the GPL or the LGPL are applicable instead
|
||||
# of those above. If you wish to allow use of your version of this file only
|
||||
# under the terms of either the GPL or the LGPL, and not to allow others to
|
||||
# use your version of this file under the terms of the MPL, indicate your
|
||||
# decision by deleting the provisions above and replace them with the notice
|
||||
# and other provisions required by the GPL or the LGPL. If you do not delete
|
||||
# the provisions above, a recipient may use your version of this file under
|
||||
# the terms of any one of the MPL, the GPL or the LGPL.
|
||||
#
|
||||
# ***** END LICENSE BLOCK *****
|
||||
|
||||
#
|
||||
# Config for all versions of Linux
|
||||
#
|
||||
|
||||
CC = gcc
|
||||
CCC = g++
|
||||
CFLAGS += -Wall -Wno-format
|
||||
OS_CFLAGS = -DXP_UNIX -DSVR4 -DSYSV -D_BSD_SOURCE -DPOSIX_SOURCE -DHAVE_LOCALTIME_R
|
||||
|
||||
RANLIB = echo
|
||||
MKSHLIB = $(LD) -shared $(XMKSHLIBOPTS)
|
||||
|
||||
#.c.o:
|
||||
# $(CC) -c -MD $*.d $(CFLAGS) $<
|
||||
|
||||
CPU_ARCH = $(shell uname -m)
|
||||
# don't filter in x86-64 architecture
|
||||
ifneq (x86_64,$(CPU_ARCH))
|
||||
ifeq (86,$(findstring 86,$(CPU_ARCH)))
|
||||
CPU_ARCH = x86
|
||||
OS_CFLAGS+= -DX86_LINUX
|
||||
|
||||
ifeq (gcc, $(CC))
|
||||
# if using gcc on x86, check version for opt bug
|
||||
# (http://bugzilla.mozilla.org/show_bug.cgi?id=24892)
|
||||
GCC_VERSION := $(shell gcc -v 2>&1 | grep version | awk '{ print $$3 }')
|
||||
GCC_LIST:=$(sort 2.91.66 $(GCC_VERSION) )
|
||||
|
||||
ifeq (2.91.66, $(firstword $(GCC_LIST)))
|
||||
CFLAGS+= -DGCC_OPT_BUG
|
||||
endif
|
||||
endif
|
||||
endif
|
||||
endif
|
||||
|
||||
GFX_ARCH = x
|
||||
|
||||
OS_LIBS = -lm -lc
|
||||
|
||||
ASFLAGS += -x assembler-with-cpp
|
||||
|
||||
|
||||
ifeq ($(CPU_ARCH),alpha)
|
||||
|
||||
# Ask the C compiler on alpha linux to let us work with denormalized
|
||||
# double values, which are required by the ECMA spec.
|
||||
|
||||
OS_CFLAGS += -mieee
|
||||
endif
|
||||
|
||||
# Use the editline library to provide line-editing support.
|
||||
JS_EDITLINE = 1
|
||||
|
||||
ifeq ($(CPU_ARCH),x86_64)
|
||||
# Use VA_COPY() standard macro on x86-64
|
||||
# FIXME: better use it everywhere
|
||||
OS_CFLAGS += -DHAVE_VA_COPY -DVA_COPY=va_copy
|
||||
endif
|
||||
|
||||
ifeq ($(CPU_ARCH),x86_64)
|
||||
# We need PIC code for shared libraries
|
||||
# FIXME: better patch rules.mk & fdlibm/Makefile*
|
||||
OS_CFLAGS += -DPIC -fPIC
|
||||
endif
|
||||
@@ -1,82 +0,0 @@
|
||||
# -*- Mode: makefile -*-
|
||||
#
|
||||
# ***** BEGIN LICENSE BLOCK *****
|
||||
# Version: MPL 1.1/GPL 2.0/LGPL 2.1
|
||||
#
|
||||
# The contents of this file are subject to the Mozilla Public License Version
|
||||
# 1.1 (the "License"); you may not use this file except in compliance with
|
||||
# the License. You may obtain a copy of the License at
|
||||
# http://www.mozilla.org/MPL/
|
||||
#
|
||||
# Software distributed under the License is distributed on an "AS IS" basis,
|
||||
# WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
|
||||
# for the specific language governing rights and limitations under the
|
||||
# License.
|
||||
#
|
||||
# The Original Code is Mozilla Communicator client code, released
|
||||
# March 31, 1998.
|
||||
#
|
||||
# The Initial Developer of the Original Code is
|
||||
# Netscape Communications Corporation.
|
||||
# Portions created by the Initial Developer are Copyright (C) 1998
|
||||
# the Initial Developer. All Rights Reserved.
|
||||
#
|
||||
# Contributor(s):
|
||||
# Steve Zellers (zellers@apple.com)
|
||||
#
|
||||
# Alternatively, the contents of this file may be used under the terms of
|
||||
# either the GNU General Public License Version 2 or later (the "GPL"), or
|
||||
# the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
|
||||
# in which case the provisions of the GPL or the LGPL are applicable instead
|
||||
# of those above. If you wish to allow use of your version of this file only
|
||||
# under the terms of either the GPL or the LGPL, and not to allow others to
|
||||
# use your version of this file under the terms of the MPL, indicate your
|
||||
# decision by deleting the provisions above and replace them with the notice
|
||||
# and other provisions required by the GPL or the LGPL. If you do not delete
|
||||
# the provisions above, a recipient may use your version of this file under
|
||||
# the terms of any one of the MPL, the GPL or the LGPL.
|
||||
#
|
||||
# ***** END LICENSE BLOCK *****
|
||||
|
||||
#
|
||||
# Config for Mac OS X as of PR3
|
||||
# Just ripped from Linux config
|
||||
#
|
||||
|
||||
CC = cc
|
||||
CCC = g++
|
||||
CFLAGS += -Wall -Wno-format
|
||||
OS_CFLAGS = -DXP_UNIX -DSVR4 -DSYSV -D_BSD_SOURCE -DPOSIX_SOURCE
|
||||
-DRHAPSODY
|
||||
|
||||
RANLIB = ranlib
|
||||
MKSHLIB = libtool -dynamic $(XMKSHLIBOPTS) -framework System
|
||||
|
||||
#.c.o:
|
||||
# $(CC) -c -MD $*.d $(CFLAGS) $<
|
||||
|
||||
CPU_ARCH = $(shell uname -m)
|
||||
ifeq (86,$(findstring 86,$(CPU_ARCH)))
|
||||
CPU_ARCH = x86
|
||||
OS_CFLAGS+= -DX86_LINUX
|
||||
endif
|
||||
GFX_ARCH = x
|
||||
|
||||
OS_LIBS = -lc -framework System
|
||||
|
||||
ASFLAGS += -x assembler-with-cpp
|
||||
|
||||
ifeq ($(CPU_ARCH),alpha)
|
||||
|
||||
# Ask the C compiler on alpha linux to let us work with denormalized
|
||||
# double values, which are required by the ECMA spec.
|
||||
|
||||
OS_CFLAGS += -mieee
|
||||
endif
|
||||
|
||||
# Use the editline library to provide line-editing support.
|
||||
JS_EDITLINE = 1
|
||||
|
||||
# Don't allow Makefile.ref to use libmath
|
||||
NO_LIBM = 1
|
||||
|
||||
@@ -1,72 +0,0 @@
|
||||
# -*- Mode: makefile -*-
|
||||
#
|
||||
# ***** BEGIN LICENSE BLOCK *****
|
||||
# Version: MPL 1.1/GPL 2.0/LGPL 2.1
|
||||
#
|
||||
# The contents of this file are subject to the Mozilla Public License Version
|
||||
# 1.1 (the "License"); you may not use this file except in compliance with
|
||||
# the License. You may obtain a copy of the License at
|
||||
# http://www.mozilla.org/MPL/
|
||||
#
|
||||
# Software distributed under the License is distributed on an "AS IS" basis,
|
||||
# WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
|
||||
# for the specific language governing rights and limitations under the
|
||||
# License.
|
||||
#
|
||||
# The Original Code is Mozilla Communicator client code, released
|
||||
# March 31, 1998.
|
||||
#
|
||||
# The Initial Developer of the Original Code is
|
||||
# Netscape Communications Corporation.
|
||||
# Portions created by the Initial Developer are Copyright (C) 1998
|
||||
# the Initial Developer. All Rights Reserved.
|
||||
#
|
||||
# Contributor(s):
|
||||
#
|
||||
# Alternatively, the contents of this file may be used under the terms of
|
||||
# either the GNU General Public License Version 2 or later (the "GPL"), or
|
||||
# the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
|
||||
# in which case the provisions of the GPL or the LGPL are applicable instead
|
||||
# of those above. If you wish to allow use of your version of this file only
|
||||
# under the terms of either the GPL or the LGPL, and not to allow others to
|
||||
# use your version of this file under the terms of the MPL, indicate your
|
||||
# decision by deleting the provisions above and replace them with the notice
|
||||
# and other provisions required by the GPL or the LGPL. If you do not delete
|
||||
# the provisions above, a recipient may use your version of this file under
|
||||
# the terms of any one of the MPL, the GPL or the LGPL.
|
||||
#
|
||||
# ***** END LICENSE BLOCK *****
|
||||
|
||||
#
|
||||
# Config stuff for Data General DG/UX
|
||||
#
|
||||
|
||||
#
|
||||
# Initial DG/UX port by Marc Fraioli (fraioli@dg-rtp.dg.com)
|
||||
#
|
||||
|
||||
ifndef NS_USE_NATIVE
|
||||
CC = gcc
|
||||
CCC = g++
|
||||
CFLAGS += -mieee -Wall -Wno-format
|
||||
else
|
||||
CC = cc
|
||||
CCC = cxx
|
||||
CFLAGS += -ieee -std
|
||||
# LD = cxx
|
||||
endif
|
||||
|
||||
RANLIB = echo
|
||||
MKSHLIB = $(LD) -shared -taso -all -expect_unresolved "*"
|
||||
|
||||
#
|
||||
# _DGUX_SOURCE is needed to turn on a lot of stuff in the headers if
|
||||
# you're not using DG's compiler. It shouldn't hurt if you are.
|
||||
#
|
||||
# _POSIX4A_DRAFT10_SOURCE is needed to pick up localtime_r, used in
|
||||
# prtime.c
|
||||
#
|
||||
OS_CFLAGS = -DXP_UNIX -DSVR4 -DSYSV -DDGUX -D_DGUX_SOURCE -D_POSIX4A_DRAFT10_SOURCE -DOSF1 -DHAVE_LOCALTIME_R
|
||||
OS_LIBS = -lsocket -lnsl
|
||||
|
||||
NOSUCHFILE = /no-such-file
|
||||
@@ -1,69 +0,0 @@
|
||||
# -*- Mode: makefile -*-
|
||||
#
|
||||
# ***** BEGIN LICENSE BLOCK *****
|
||||
# Version: MPL 1.1/GPL 2.0/LGPL 2.1
|
||||
#
|
||||
# The contents of this file are subject to the Mozilla Public License Version
|
||||
# 1.1 (the "License"); you may not use this file except in compliance with
|
||||
# the License. You may obtain a copy of the License at
|
||||
# http://www.mozilla.org/MPL/
|
||||
#
|
||||
# Software distributed under the License is distributed on an "AS IS" basis,
|
||||
# WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
|
||||
# for the specific language governing rights and limitations under the
|
||||
# License.
|
||||
#
|
||||
# The Original Code is Mozilla Communicator client code, released
|
||||
# March 31, 1998.
|
||||
#
|
||||
# The Initial Developer of the Original Code is
|
||||
# Netscape Communications Corporation.
|
||||
# Portions created by the Initial Developer are Copyright (C) 1998
|
||||
# the Initial Developer. All Rights Reserved.
|
||||
#
|
||||
# Contributor(s):
|
||||
#
|
||||
# Alternatively, the contents of this file may be used under the terms of
|
||||
# either the GNU General Public License Version 2 or later (the "GPL"), or
|
||||
# the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
|
||||
# in which case the provisions of the GPL or the LGPL are applicable instead
|
||||
# of those above. If you wish to allow use of your version of this file only
|
||||
# under the terms of either the GPL or the LGPL, and not to allow others to
|
||||
# use your version of this file under the terms of the MPL, indicate your
|
||||
# decision by deleting the provisions above and replace them with the notice
|
||||
# and other provisions required by the GPL or the LGPL. If you do not delete
|
||||
# the provisions above, a recipient may use your version of this file under
|
||||
# the terms of any one of the MPL, the GPL or the LGPL.
|
||||
#
|
||||
# ***** END LICENSE BLOCK *****
|
||||
|
||||
#
|
||||
# Config stuff for Tru64 Unix 5.0
|
||||
#
|
||||
|
||||
#
|
||||
# Initial DG/UX port by Marc Fraioli (fraioli@dg-rtp.dg.com)
|
||||
#
|
||||
|
||||
ifndef NS_USE_NATIVE
|
||||
CC = gcc
|
||||
CCC = g++
|
||||
CFLAGS += -mieee -Wall -Wno-format
|
||||
else
|
||||
CC = cc
|
||||
CCC = cxx
|
||||
CFLAGS += -ieee -std -pthread
|
||||
# LD = cxx
|
||||
endif
|
||||
|
||||
RANLIB = echo
|
||||
MKSHLIB = $(LD) -shared -all -expect_unresolved "*"
|
||||
|
||||
#
|
||||
# _POSIX4A_DRAFT10_SOURCE is needed to pick up localtime_r, used in
|
||||
# prtime.c
|
||||
#
|
||||
OS_CFLAGS = -DXP_UNIX -DSVR4 -DSYSV -D_POSIX4A_DRAFT10_SOURCE -DOSF1 -DHAVE_LOCALTIME_R
|
||||
OS_LIBS = -lsocket -lnsl
|
||||
|
||||
NOSUCHFILE = /no-such-file
|
||||
@@ -1,101 +0,0 @@
|
||||
# -*- Mode: makefile -*-
|
||||
#
|
||||
# ***** BEGIN LICENSE BLOCK *****
|
||||
# Version: MPL 1.1/GPL 2.0/LGPL 2.1
|
||||
#
|
||||
# The contents of this file are subject to the Mozilla Public License Version
|
||||
# 1.1 (the "License"); you may not use this file except in compliance with
|
||||
# the License. You may obtain a copy of the License at
|
||||
# http://www.mozilla.org/MPL/
|
||||
#
|
||||
# Software distributed under the License is distributed on an "AS IS" basis,
|
||||
# WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
|
||||
# for the specific language governing rights and limitations under the
|
||||
# License.
|
||||
#
|
||||
# The Original Code is Mozilla Communicator client code, released
|
||||
# March 31, 1998.
|
||||
#
|
||||
# The Initial Developer of the Original Code is
|
||||
# Netscape Communications Corporation.
|
||||
# Portions created by the Initial Developer are Copyright (C) 1998
|
||||
# the Initial Developer. All Rights Reserved.
|
||||
#
|
||||
# Contributor(s):
|
||||
#
|
||||
# Alternatively, the contents of this file may be used under the terms of
|
||||
# either the GNU General Public License Version 2 or later (the "GPL"), or
|
||||
# the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
|
||||
# in which case the provisions of the GPL or the LGPL are applicable instead
|
||||
# of those above. If you wish to allow use of your version of this file only
|
||||
# under the terms of either the GPL or the LGPL, and not to allow others to
|
||||
# use your version of this file under the terms of the MPL, indicate your
|
||||
# decision by deleting the provisions above and replace them with the notice
|
||||
# and other provisions required by the GPL or the LGPL. If you do not delete
|
||||
# the provisions above, a recipient may use your version of this file under
|
||||
# the terms of any one of the MPL, the GPL or the LGPL.
|
||||
#
|
||||
# ***** END LICENSE BLOCK *****
|
||||
|
||||
#
|
||||
# Config stuff for SunOS4.1
|
||||
#
|
||||
|
||||
CC = gcc
|
||||
CCC = g++
|
||||
RANLIB = ranlib
|
||||
|
||||
#.c.o:
|
||||
# $(CC) -c -MD $*.d $(CFLAGS) $<
|
||||
|
||||
CPU_ARCH = sparc
|
||||
GFX_ARCH = x
|
||||
|
||||
# A pile of -D's to build xfe on sunos
|
||||
MOZ_CFLAGS = -DSTRINGS_ALIGNED -DNO_REGEX -DNO_ISDIR -DUSE_RE_COMP \
|
||||
-DNO_REGCOMP -DUSE_GETWD -DNO_MEMMOVE -DNO_ALLOCA \
|
||||
-DBOGUS_MB_MAX -DNO_CONST
|
||||
|
||||
# Purify doesn't like -MDupdate
|
||||
NOMD_OS_CFLAGS = -DXP_UNIX -Wall -Wno-format -DSW_THREADS -DSUNOS4 -DNEED_SYSCALL \
|
||||
$(MOZ_CFLAGS)
|
||||
|
||||
OS_CFLAGS = $(NOMD_OS_CFLAGS) -MDupdate $(DEPENDENCIES)
|
||||
OS_LIBS = -ldl -lm
|
||||
|
||||
MKSHLIB = $(LD) -L$(MOTIF)/lib
|
||||
|
||||
HAVE_PURIFY = 1
|
||||
MOTIF = /home/motif/usr
|
||||
MOTIFLIB = -L$(MOTIF)/lib -lXm
|
||||
INCLUDES += -I/usr/X11R5/include -I$(MOTIF)/include
|
||||
|
||||
NOSUCHFILE = /solaris-rm-f-sucks
|
||||
|
||||
LOCALE_MAP = $(DEPTH)/cmd/xfe/intl/sunos.lm
|
||||
|
||||
EN_LOCALE = en_US
|
||||
DE_LOCALE = de
|
||||
FR_LOCALE = fr
|
||||
JP_LOCALE = ja
|
||||
SJIS_LOCALE = ja_JP.SJIS
|
||||
KR_LOCALE = ko
|
||||
CN_LOCALE = zh
|
||||
TW_LOCALE = zh_TW
|
||||
I2_LOCALE = i2
|
||||
IT_LOCALE = it
|
||||
SV_LOCALE = sv
|
||||
ES_LOCALE = es
|
||||
NL_LOCALE = nl
|
||||
PT_LOCALE = pt
|
||||
|
||||
LOC_LIB_DIR = /usr/openwin/lib/locale
|
||||
|
||||
BSDECHO = echo
|
||||
|
||||
#
|
||||
# These defines are for building unix plugins
|
||||
#
|
||||
BUILD_UNIX_PLUGINS = 1
|
||||
DSO_LDOPTS =
|
||||
DSO_LDFLAGS =
|
||||
@@ -1,91 +0,0 @@
|
||||
# -*- Mode: makefile -*-
|
||||
#
|
||||
# ***** BEGIN LICENSE BLOCK *****
|
||||
# Version: MPL 1.1/GPL 2.0/LGPL 2.1
|
||||
#
|
||||
# The contents of this file are subject to the Mozilla Public License Version
|
||||
# 1.1 (the "License"); you may not use this file except in compliance with
|
||||
# the License. You may obtain a copy of the License at
|
||||
# http://www.mozilla.org/MPL/
|
||||
#
|
||||
# Software distributed under the License is distributed on an "AS IS" basis,
|
||||
# WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
|
||||
# for the specific language governing rights and limitations under the
|
||||
# License.
|
||||
#
|
||||
# The Original Code is Mozilla Communicator client code, released
|
||||
# March 31, 1998.
|
||||
#
|
||||
# The Initial Developer of the Original Code is
|
||||
# Netscape Communications Corporation.
|
||||
# Portions created by the Initial Developer are Copyright (C) 1998
|
||||
# the Initial Developer. All Rights Reserved.
|
||||
#
|
||||
# Contributor(s):
|
||||
#
|
||||
# Alternatively, the contents of this file may be used under the terms of
|
||||
# either the GNU General Public License Version 2 or later (the "GPL"), or
|
||||
# the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
|
||||
# in which case the provisions of the GPL or the LGPL are applicable instead
|
||||
# of those above. If you wish to allow use of your version of this file only
|
||||
# under the terms of either the GPL or the LGPL, and not to allow others to
|
||||
# use your version of this file under the terms of the MPL, indicate your
|
||||
# decision by deleting the provisions above and replace them with the notice
|
||||
# and other provisions required by the GPL or the LGPL. If you do not delete
|
||||
# the provisions above, a recipient may use your version of this file under
|
||||
# the terms of any one of the MPL, the GPL or the LGPL.
|
||||
#
|
||||
# ***** END LICENSE BLOCK *****
|
||||
|
||||
#
|
||||
# Config stuff for SunOS5.3
|
||||
#
|
||||
|
||||
CC = gcc
|
||||
CCC = g++
|
||||
CFLAGS += -Wall -Wno-format
|
||||
|
||||
#CC = /opt/SUNWspro/SC3.0.1/bin/cc
|
||||
RANLIB = echo
|
||||
|
||||
#.c.o:
|
||||
# $(CC) -c -MD $*.d $(CFLAGS) $<
|
||||
|
||||
CPU_ARCH = sparc
|
||||
GFX_ARCH = x
|
||||
|
||||
OS_CFLAGS = -DXP_UNIX -DSVR4 -DSYSV -DSOLARIS -DHAVE_LOCALTIME_R
|
||||
OS_LIBS = -lsocket -lnsl -ldl
|
||||
|
||||
ASFLAGS += -P -L -K PIC -D_ASM -D__STDC__=0
|
||||
|
||||
HAVE_PURIFY = 1
|
||||
|
||||
NOSUCHFILE = /solaris-rm-f-sucks
|
||||
|
||||
ifndef JS_NO_ULTRA
|
||||
ULTRA_OPTIONS := -xarch=v8plus
|
||||
ULTRA_OPTIONSD := -DULTRA_SPARC
|
||||
else
|
||||
ULTRA_OPTIONS := -xarch=v8
|
||||
ULTRA_OPTIONSD :=
|
||||
endif
|
||||
|
||||
ifeq ($(OS_CPUARCH),sun4u)
|
||||
DEFINES += $(ULTRA_OPTIONSD)
|
||||
ifeq ($(findstring gcc,$(CC)),gcc)
|
||||
DEFINES += -Wa,$(ULTRA_OPTIONS),$(ULTRA_OPTIONSD)
|
||||
else
|
||||
ASFLAGS += $(ULTRA_OPTIONS) $(ULTRA_OPTIONSD)
|
||||
endif
|
||||
endif
|
||||
|
||||
ifeq ($(OS_CPUARCH),sun4m)
|
||||
ifeq ($(findstring gcc,$(CC)),gcc)
|
||||
DEFINES += -Wa,-xarch=v8
|
||||
else
|
||||
ASFLAGS += -xarch=v8
|
||||
endif
|
||||
endif
|
||||
|
||||
MKSHLIB = $(LD) -G
|
||||
@@ -1,92 +0,0 @@
|
||||
# -*- Mode: makefile -*-
|
||||
#
|
||||
# ***** BEGIN LICENSE BLOCK *****
|
||||
# Version: MPL 1.1/GPL 2.0/LGPL 2.1
|
||||
#
|
||||
# The contents of this file are subject to the Mozilla Public License Version
|
||||
# 1.1 (the "License"); you may not use this file except in compliance with
|
||||
# the License. You may obtain a copy of the License at
|
||||
# http://www.mozilla.org/MPL/
|
||||
#
|
||||
# Software distributed under the License is distributed on an "AS IS" basis,
|
||||
# WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
|
||||
# for the specific language governing rights and limitations under the
|
||||
# License.
|
||||
#
|
||||
# The Original Code is Mozilla Communicator client code, released
|
||||
# March 31, 1998.
|
||||
#
|
||||
# The Initial Developer of the Original Code is
|
||||
# Netscape Communications Corporation.
|
||||
# Portions created by the Initial Developer are Copyright (C) 1998
|
||||
# the Initial Developer. All Rights Reserved.
|
||||
#
|
||||
# Contributor(s):
|
||||
#
|
||||
# Alternatively, the contents of this file may be used under the terms of
|
||||
# either the GNU General Public License Version 2 or later (the "GPL"), or
|
||||
# the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
|
||||
# in which case the provisions of the GPL or the LGPL are applicable instead
|
||||
# of those above. If you wish to allow use of your version of this file only
|
||||
# under the terms of either the GPL or the LGPL, and not to allow others to
|
||||
# use your version of this file under the terms of the MPL, indicate your
|
||||
# decision by deleting the provisions above and replace them with the notice
|
||||
# and other provisions required by the GPL or the LGPL. If you do not delete
|
||||
# the provisions above, a recipient may use your version of this file under
|
||||
# the terms of any one of the MPL, the GPL or the LGPL.
|
||||
#
|
||||
# ***** END LICENSE BLOCK *****
|
||||
|
||||
#
|
||||
# Config stuff for SunOS5.4
|
||||
#
|
||||
|
||||
ifdef NS_USE_NATIVE
|
||||
CC = cc
|
||||
CCC = CC
|
||||
else
|
||||
CC = gcc
|
||||
CCC = g++
|
||||
CFLAGS += -Wall -Wno-format
|
||||
endif
|
||||
|
||||
RANLIB = echo
|
||||
|
||||
CPU_ARCH = sparc
|
||||
GFX_ARCH = x
|
||||
|
||||
OS_CFLAGS = -DXP_UNIX -DSVR4 -DSYSV -D__svr4 -DSOLARIS -DHAVE_LOCALTIME_R
|
||||
OS_LIBS = -lsocket -lnsl -ldl
|
||||
|
||||
ASFLAGS += -P -L -K PIC -D_ASM -D__STDC__=0
|
||||
|
||||
HAVE_PURIFY = 1
|
||||
|
||||
NOSUCHFILE = /solaris-rm-f-sucks
|
||||
|
||||
ifndef JS_NO_ULTRA
|
||||
ULTRA_OPTIONS := -xarch=v8plus
|
||||
ULTRA_OPTIONSD := -DULTRA_SPARC
|
||||
else
|
||||
ULTRA_OPTIONS := -xarch=v8
|
||||
ULTRA_OPTIONSD :=
|
||||
endif
|
||||
|
||||
ifeq ($(OS_CPUARCH),sun4u)
|
||||
DEFINES += $(ULTRA_OPTIONSD)
|
||||
ifeq ($(findstring gcc,$(CC)),gcc)
|
||||
DEFINES += -Wa,$(ULTRA_OPTIONS),$(ULTRA_OPTIONSD)
|
||||
else
|
||||
ASFLAGS += $(ULTRA_OPTIONS) $(ULTRA_OPTIONSD)
|
||||
endif
|
||||
endif
|
||||
|
||||
ifeq ($(OS_CPUARCH),sun4m)
|
||||
ifeq ($(findstring gcc,$(CC)),gcc)
|
||||
DEFINES += -Wa,-xarch=v8
|
||||
else
|
||||
ASFLAGS += -xarch=v8
|
||||
endif
|
||||
endif
|
||||
|
||||
MKSHLIB = $(LD) -G
|
||||
@@ -1,44 +0,0 @@
|
||||
# -*- Mode: makefile -*-
|
||||
#
|
||||
# ***** BEGIN LICENSE BLOCK *****
|
||||
# Version: MPL 1.1/GPL 2.0/LGPL 2.1
|
||||
#
|
||||
# The contents of this file are subject to the Mozilla Public License Version
|
||||
# 1.1 (the "License"); you may not use this file except in compliance with
|
||||
# the License. You may obtain a copy of the License at
|
||||
# http://www.mozilla.org/MPL/
|
||||
#
|
||||
# Software distributed under the License is distributed on an "AS IS" basis,
|
||||
# WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
|
||||
# for the specific language governing rights and limitations under the
|
||||
# License.
|
||||
#
|
||||
# The Original Code is Mozilla Communicator client code, released
|
||||
# March 31, 1998.
|
||||
#
|
||||
# The Initial Developer of the Original Code is
|
||||
# Netscape Communications Corporation.
|
||||
# Portions created by the Initial Developer are Copyright (C) 1998
|
||||
# the Initial Developer. All Rights Reserved.
|
||||
#
|
||||
# Contributor(s):
|
||||
#
|
||||
# Alternatively, the contents of this file may be used under the terms of
|
||||
# either the GNU General Public License Version 2 or later (the "GPL"), or
|
||||
# the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
|
||||
# in which case the provisions of the GPL or the LGPL are applicable instead
|
||||
# of those above. If you wish to allow use of your version of this file only
|
||||
# under the terms of either the GPL or the LGPL, and not to allow others to
|
||||
# use your version of this file under the terms of the MPL, indicate your
|
||||
# decision by deleting the provisions above and replace them with the notice
|
||||
# and other provisions required by the GPL or the LGPL. If you do not delete
|
||||
# the provisions above, a recipient may use your version of this file under
|
||||
# the terms of any one of the MPL, the GPL or the LGPL.
|
||||
#
|
||||
# ***** END LICENSE BLOCK *****
|
||||
|
||||
#
|
||||
# Config stuff for SunOS5.5.1
|
||||
#
|
||||
|
||||
include $(DEPTH)/config/SunOS5.5.mk
|
||||
@@ -1,87 +0,0 @@
|
||||
# -*- Mode: makefile -*-
|
||||
#
|
||||
# ***** BEGIN LICENSE BLOCK *****
|
||||
# Version: MPL 1.1/GPL 2.0/LGPL 2.1
|
||||
#
|
||||
# The contents of this file are subject to the Mozilla Public License Version
|
||||
# 1.1 (the "License"); you may not use this file except in compliance with
|
||||
# the License. You may obtain a copy of the License at
|
||||
# http://www.mozilla.org/MPL/
|
||||
#
|
||||
# Software distributed under the License is distributed on an "AS IS" basis,
|
||||
# WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
|
||||
# for the specific language governing rights and limitations under the
|
||||
# License.
|
||||
#
|
||||
# The Original Code is Mozilla Communicator client code, released
|
||||
# March 31, 1998.
|
||||
#
|
||||
# The Initial Developer of the Original Code is
|
||||
# Netscape Communications Corporation.
|
||||
# Portions created by the Initial Developer are Copyright (C) 1998
|
||||
# the Initial Developer. All Rights Reserved.
|
||||
#
|
||||
# Contributor(s):
|
||||
#
|
||||
# Alternatively, the contents of this file may be used under the terms of
|
||||
# either the GNU General Public License Version 2 or later (the "GPL"), or
|
||||
# the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
|
||||
# in which case the provisions of the GPL or the LGPL are applicable instead
|
||||
# of those above. If you wish to allow use of your version of this file only
|
||||
# under the terms of either the GPL or the LGPL, and not to allow others to
|
||||
# use your version of this file under the terms of the MPL, indicate your
|
||||
# decision by deleting the provisions above and replace them with the notice
|
||||
# and other provisions required by the GPL or the LGPL. If you do not delete
|
||||
# the provisions above, a recipient may use your version of this file under
|
||||
# the terms of any one of the MPL, the GPL or the LGPL.
|
||||
#
|
||||
# ***** END LICENSE BLOCK *****
|
||||
|
||||
#
|
||||
# Config stuff for SunOS5.5
|
||||
#
|
||||
|
||||
AS = /usr/ccs/bin/as
|
||||
ifndef NS_USE_NATIVE
|
||||
CC = gcc
|
||||
CCC = g++
|
||||
CFLAGS += -Wall -Wno-format
|
||||
else
|
||||
CC = cc
|
||||
CCC = CC
|
||||
endif
|
||||
|
||||
RANLIB = echo
|
||||
|
||||
#.c.o:
|
||||
# $(CC) -c -MD $*.d $(CFLAGS) $<
|
||||
|
||||
CPU_ARCH = sparc
|
||||
GFX_ARCH = x
|
||||
|
||||
OS_CFLAGS = -DXP_UNIX -DSVR4 -DSYSV -DSOLARIS -DHAVE_LOCALTIME_R
|
||||
OS_LIBS = -lsocket -lnsl -ldl
|
||||
|
||||
ASFLAGS += -P -L -K PIC -D_ASM -D__STDC__=0
|
||||
|
||||
HAVE_PURIFY = 1
|
||||
|
||||
NOSUCHFILE = /solaris-rm-f-sucks
|
||||
|
||||
ifeq ($(OS_CPUARCH),sun4u) # ultra sparc?
|
||||
ifeq ($(CC),gcc) # using gcc?
|
||||
ifndef JS_NO_ULTRA # do we want ultra?
|
||||
ifdef JS_THREADSAFE # only in thread-safe mode
|
||||
DEFINES += -DULTRA_SPARC
|
||||
DEFINES += -Wa,-xarch=v8plus,-DULTRA_SPARC
|
||||
else
|
||||
ASFLAGS += -xarch=v8plus -DULTRA_SPARC
|
||||
endif
|
||||
endif
|
||||
endif
|
||||
endif
|
||||
|
||||
MKSHLIB = $(LD) -G
|
||||
|
||||
# Use the editline library to provide line-editing support.
|
||||
JS_EDITLINE = 1
|
||||
@@ -1,89 +0,0 @@
|
||||
# -*- Mode: makefile -*-
|
||||
#
|
||||
# ***** BEGIN LICENSE BLOCK *****
|
||||
# Version: MPL 1.1/GPL 2.0/LGPL 2.1
|
||||
#
|
||||
# The contents of this file are subject to the Mozilla Public License Version
|
||||
# 1.1 (the "License"); you may not use this file except in compliance with
|
||||
# the License. You may obtain a copy of the License at
|
||||
# http://www.mozilla.org/MPL/
|
||||
#
|
||||
# Software distributed under the License is distributed on an "AS IS" basis,
|
||||
# WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
|
||||
# for the specific language governing rights and limitations under the
|
||||
# License.
|
||||
#
|
||||
# The Original Code is Mozilla Communicator client code, released
|
||||
# March 31, 1998.
|
||||
#
|
||||
# The Initial Developer of the Original Code is
|
||||
# Netscape Communications Corporation.
|
||||
# Portions created by the Initial Developer are Copyright (C) 1998
|
||||
# the Initial Developer. All Rights Reserved.
|
||||
#
|
||||
# Contributor(s):
|
||||
#
|
||||
# Alternatively, the contents of this file may be used under the terms of
|
||||
# either the GNU General Public License Version 2 or later (the "GPL"), or
|
||||
# the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
|
||||
# in which case the provisions of the GPL or the LGPL are applicable instead
|
||||
# of those above. If you wish to allow use of your version of this file only
|
||||
# under the terms of either the GPL or the LGPL, and not to allow others to
|
||||
# use your version of this file under the terms of the MPL, indicate your
|
||||
# decision by deleting the provisions above and replace them with the notice
|
||||
# and other provisions required by the GPL or the LGPL. If you do not delete
|
||||
# the provisions above, a recipient may use your version of this file under
|
||||
# the terms of any one of the MPL, the GPL or the LGPL.
|
||||
#
|
||||
# ***** END LICENSE BLOCK *****
|
||||
|
||||
#
|
||||
# Config stuff for SunOS5.5
|
||||
#
|
||||
|
||||
AS = /usr/ccs/bin/as
|
||||
ifndef NS_USE_NATIVE
|
||||
CC = gcc
|
||||
CCC = g++
|
||||
CFLAGS += -Wall -Wno-format
|
||||
else
|
||||
CC = cc
|
||||
CCC = CC
|
||||
CFLAGS += -mt -KPIC
|
||||
# LD = CC
|
||||
endif
|
||||
|
||||
RANLIB = echo
|
||||
|
||||
#.c.o:
|
||||
# $(CC) -c -MD $*.d $(CFLAGS) $<
|
||||
|
||||
CPU_ARCH = sparc
|
||||
GFX_ARCH = x
|
||||
|
||||
OS_CFLAGS = -DXP_UNIX -DSVR4 -DSYSV -DSOLARIS -DHAVE_LOCALTIME_R
|
||||
OS_LIBS = -lsocket -lnsl -ldl
|
||||
|
||||
ASFLAGS += -P -L -K PIC -D_ASM -D__STDC__=0
|
||||
|
||||
HAVE_PURIFY = 1
|
||||
|
||||
NOSUCHFILE = /solaris-rm-f-sucks
|
||||
|
||||
ifeq ($(OS_CPUARCH),sun4u) # ultra sparc?
|
||||
ifeq ($(CC),gcc) # using gcc?
|
||||
ifndef JS_NO_ULTRA # do we want ultra?
|
||||
ifdef JS_THREADSAFE # only in thread-safe mode
|
||||
DEFINES += -DULTRA_SPARC
|
||||
DEFINES += -Wa,-xarch=v8plus,-DULTRA_SPARC
|
||||
else
|
||||
ASFLAGS += -xarch=v8plus -DULTRA_SPARC
|
||||
endif
|
||||
endif
|
||||
endif
|
||||
endif
|
||||
|
||||
MKSHLIB = $(LD) -G
|
||||
|
||||
# Use the editline library to provide line-editing support.
|
||||
JS_EDITLINE = 1
|
||||
@@ -1,44 +0,0 @@
|
||||
# -*- Mode: makefile -*-
|
||||
#
|
||||
# ***** BEGIN LICENSE BLOCK *****
|
||||
# Version: MPL 1.1/GPL 2.0/LGPL 2.1
|
||||
#
|
||||
# The contents of this file are subject to the Mozilla Public License Version
|
||||
# 1.1 (the "License"); you may not use this file except in compliance with
|
||||
# the License. You may obtain a copy of the License at
|
||||
# http://www.mozilla.org/MPL/
|
||||
#
|
||||
# Software distributed under the License is distributed on an "AS IS" basis,
|
||||
# WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
|
||||
# for the specific language governing rights and limitations under the
|
||||
# License.
|
||||
#
|
||||
# The Original Code is Mozilla Communicator client code, released
|
||||
# March 31, 1998.
|
||||
#
|
||||
# The Initial Developer of the Original Code is
|
||||
# Netscape Communications Corporation.
|
||||
# Portions created by the Initial Developer are Copyright (C) 1999
|
||||
# the Initial Developer. All Rights Reserved.
|
||||
#
|
||||
# Contributor(s):
|
||||
#
|
||||
# Alternatively, the contents of this file may be used under the terms of
|
||||
# either the GNU General Public License Version 2 or later (the "GPL"), or
|
||||
# the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
|
||||
# in which case the provisions of the GPL or the LGPL are applicable instead
|
||||
# of those above. If you wish to allow use of your version of this file only
|
||||
# under the terms of either the GPL or the LGPL, and not to allow others to
|
||||
# use your version of this file under the terms of the MPL, indicate your
|
||||
# decision by deleting the provisions above and replace them with the notice
|
||||
# and other provisions required by the GPL or the LGPL. If you do not delete
|
||||
# the provisions above, a recipient may use your version of this file under
|
||||
# the terms of any one of the MPL, the GPL or the LGPL.
|
||||
#
|
||||
# ***** END LICENSE BLOCK *****
|
||||
|
||||
#
|
||||
# Config stuff for SunOS5.7
|
||||
#
|
||||
|
||||
include $(DEPTH)/config/SunOS5.5.mk
|
||||
@@ -1,44 +0,0 @@
|
||||
# -*- Mode: makefile -*-
|
||||
#
|
||||
# ***** BEGIN LICENSE BLOCK *****
|
||||
# Version: MPL 1.1/GPL 2.0/LGPL 2.1
|
||||
#
|
||||
# The contents of this file are subject to the Mozilla Public License Version
|
||||
# 1.1 (the "License"); you may not use this file except in compliance with
|
||||
# the License. You may obtain a copy of the License at
|
||||
# http://www.mozilla.org/MPL/
|
||||
#
|
||||
# Software distributed under the License is distributed on an "AS IS" basis,
|
||||
# WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
|
||||
# for the specific language governing rights and limitations under the
|
||||
# License.
|
||||
#
|
||||
# The Original Code is Mozilla Communicator client code, released
|
||||
# March 31, 1998.
|
||||
#
|
||||
# The Initial Developer of the Original Code is
|
||||
# Netscape Communications Corporation.
|
||||
# Portions created by the Initial Developer are Copyright (C) 1999
|
||||
# the Initial Developer. All Rights Reserved.
|
||||
#
|
||||
# Contributor(s):
|
||||
#
|
||||
# Alternatively, the contents of this file may be used under the terms of
|
||||
# either the GNU General Public License Version 2 or later (the "GPL"), or
|
||||
# the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
|
||||
# in which case the provisions of the GPL or the LGPL are applicable instead
|
||||
# of those above. If you wish to allow use of your version of this file only
|
||||
# under the terms of either the GPL or the LGPL, and not to allow others to
|
||||
# use your version of this file under the terms of the MPL, indicate your
|
||||
# decision by deleting the provisions above and replace them with the notice
|
||||
# and other provisions required by the GPL or the LGPL. If you do not delete
|
||||
# the provisions above, a recipient may use your version of this file under
|
||||
# the terms of any one of the MPL, the GPL or the LGPL.
|
||||
#
|
||||
# ***** END LICENSE BLOCK *****
|
||||
|
||||
#
|
||||
# Config stuff for SunOS5.8
|
||||
#
|
||||
|
||||
include $(DEPTH)/config/SunOS5.5.mk
|
||||
@@ -1,44 +0,0 @@
|
||||
# -*- Mode: makefile -*-
|
||||
#
|
||||
# ***** BEGIN LICENSE BLOCK *****
|
||||
# Version: MPL 1.1/GPL 2.0/LGPL 2.1
|
||||
#
|
||||
# The contents of this file are subject to the Mozilla Public License Version
|
||||
# 1.1 (the "License"); you may not use this file except in compliance with
|
||||
# the License. You may obtain a copy of the License at
|
||||
# http://www.mozilla.org/MPL/
|
||||
#
|
||||
# Software distributed under the License is distributed on an "AS IS" basis,
|
||||
# WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
|
||||
# for the specific language governing rights and limitations under the
|
||||
# License.
|
||||
#
|
||||
# The Original Code is Mozilla Communicator client code, released
|
||||
# March 31, 1998.
|
||||
#
|
||||
# The Initial Developer of the Original Code is
|
||||
# Netscape Communications Corporation.
|
||||
# Portions created by the Initial Developer are Copyright (C) 1999
|
||||
# the Initial Developer. All Rights Reserved.
|
||||
#
|
||||
# Contributor(s):
|
||||
#
|
||||
# Alternatively, the contents of this file may be used under the terms of
|
||||
# either the GNU General Public License Version 2 or later (the "GPL"), or
|
||||
# the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
|
||||
# in which case the provisions of the GPL or the LGPL are applicable instead
|
||||
# of those above. If you wish to allow use of your version of this file only
|
||||
# under the terms of either the GPL or the LGPL, and not to allow others to
|
||||
# use your version of this file under the terms of the MPL, indicate your
|
||||
# decision by deleting the provisions above and replace them with the notice
|
||||
# and other provisions required by the GPL or the LGPL. If you do not delete
|
||||
# the provisions above, a recipient may use your version of this file under
|
||||
# the terms of any one of the MPL, the GPL or the LGPL.
|
||||
#
|
||||
# ***** END LICENSE BLOCK *****
|
||||
|
||||
#
|
||||
# Config stuff for SunOS5.9
|
||||
#
|
||||
|
||||
include $(DEPTH)/config/SunOS5.5.mk
|
||||
@@ -1,117 +0,0 @@
|
||||
# -*- Mode: makefile -*-
|
||||
#
|
||||
# ***** BEGIN LICENSE BLOCK *****
|
||||
# Version: MPL 1.1/GPL 2.0/LGPL 2.1
|
||||
#
|
||||
# The contents of this file are subject to the Mozilla Public License Version
|
||||
# 1.1 (the "License"); you may not use this file except in compliance with
|
||||
# the License. You may obtain a copy of the License at
|
||||
# http://www.mozilla.org/MPL/
|
||||
#
|
||||
# Software distributed under the License is distributed on an "AS IS" basis,
|
||||
# WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
|
||||
# for the specific language governing rights and limitations under the
|
||||
# License.
|
||||
#
|
||||
# The Original Code is Mozilla Communicator client code, released
|
||||
# March 31, 1998.
|
||||
#
|
||||
# The Initial Developer of the Original Code is
|
||||
# Netscape Communications Corporation.
|
||||
# Portions created by the Initial Developer are Copyright (C) 1998
|
||||
# the Initial Developer. All Rights Reserved.
|
||||
#
|
||||
# Contributor(s):
|
||||
#
|
||||
# Alternatively, the contents of this file may be used under the terms of
|
||||
# either the GNU General Public License Version 2 or later (the "GPL"), or
|
||||
# the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
|
||||
# in which case the provisions of the GPL or the LGPL are applicable instead
|
||||
# of those above. If you wish to allow use of your version of this file only
|
||||
# under the terms of either the GPL or the LGPL, and not to allow others to
|
||||
# use your version of this file under the terms of the MPL, indicate your
|
||||
# decision by deleting the provisions above and replace them with the notice
|
||||
# and other provisions required by the GPL or the LGPL. If you do not delete
|
||||
# the provisions above, a recipient may use your version of this file under
|
||||
# the terms of any one of the MPL, the GPL or the LGPL.
|
||||
#
|
||||
# ***** END LICENSE BLOCK *****
|
||||
|
||||
#
|
||||
# Config for Windows NT using MS Visual C++ (version?)
|
||||
#
|
||||
|
||||
CC = cl
|
||||
|
||||
RANLIB = echo
|
||||
|
||||
PDBFILE = $(basename $(@F)).pdb
|
||||
|
||||
#.c.o:
|
||||
# $(CC) -c -MD $*.d $(CFLAGS) $<
|
||||
|
||||
CPU_ARCH = x86 # XXX fixme
|
||||
GFX_ARCH = win32
|
||||
|
||||
# MSVC compiler options for both debug/optimize
|
||||
# -nologo - suppress copyright message
|
||||
# -W3 - Warning level 3
|
||||
# -Gm - enable minimal rebuild
|
||||
# -Z7 - put debug info into the executable, not in .pdb file
|
||||
# -Zi - put debug info into .pdb file
|
||||
# -YX - automatic precompiled headers
|
||||
# -GX - enable C++ exception support
|
||||
WIN_CFLAGS = -nologo -W3
|
||||
|
||||
# MSVC compiler options for debug builds linked to MSVCRTD.DLL
|
||||
# -MDd - link with MSVCRTD.LIB (Dynamically-linked, multi-threaded, debug C-runtime)
|
||||
# -Od - minimal optimization
|
||||
WIN_IDG_CFLAGS = -MDd -Od -Z7
|
||||
|
||||
# MSVC compiler options for debug builds linked to MSVCRT.DLL
|
||||
# -MD - link with MSVCRT.LIB (Dynamically-linked, multi-threaded, debug C-runtime)
|
||||
# -Od - minimal optimization
|
||||
WIN_DEBUG_CFLAGS = -MD -Od -Zi -Fd$(OBJDIR)/$(PDBFILE)
|
||||
|
||||
# MSVC compiler options for release (optimized) builds
|
||||
# -MD - link with MSVCRT.LIB (Dynamically-linked, multi-threaded, C-runtime)
|
||||
# -O2 - Optimize for speed
|
||||
# -G5 - Optimize for Pentium
|
||||
WIN_OPT_CFLAGS = -MD -O2
|
||||
|
||||
ifdef BUILD_OPT
|
||||
OPTIMIZER = $(WIN_OPT_CFLAGS)
|
||||
else
|
||||
ifdef BUILD_IDG
|
||||
OPTIMIZER = $(WIN_IDG_CFLAGS)
|
||||
else
|
||||
OPTIMIZER = $(WIN_DEBUG_CFLAGS)
|
||||
endif
|
||||
endif
|
||||
|
||||
OS_CFLAGS = -D_X86_=1 -DXP_WIN -DXP_WIN32 -DWIN32 -D_WINDOWS -D_WIN32 $(WIN_CFLAGS)
|
||||
JSDLL_CFLAGS = -DEXPORT_JS_API
|
||||
OS_LIBS = -lm -lc
|
||||
|
||||
PREBUILT_CPUCFG = 1
|
||||
USE_MSVC = 1
|
||||
|
||||
LIB_LINK_FLAGS=kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib\
|
||||
advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib oldnames.lib \
|
||||
winmm.lib \
|
||||
-nologo\
|
||||
-subsystem:windows -dll -debug -pdb:$(OBJDIR)/$(PDBFILE)\
|
||||
-machine:I386\
|
||||
-opt:ref -opt:noicf
|
||||
|
||||
EXE_LINK_FLAGS=kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib\
|
||||
advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib oldnames.lib -nologo\
|
||||
-subsystem:console -debug -pdb:$(OBJDIR)/$(PDBFILE)\
|
||||
-machine:I386\
|
||||
-opt:ref -opt:noicf
|
||||
|
||||
# CAFEDIR = t:/cafe
|
||||
# JCLASSPATH = $(CAFEDIR)/Java/Lib/classes.zip
|
||||
# JAVAC = $(CAFEDIR)/Bin/sj.exe
|
||||
# JAVAH = $(CAFEDIR)/Java/Bin/javah.exe
|
||||
# JCFLAGS = -I$(CAFEDIR)/Java/Include -I$(CAFEDIR)/Java/Include/win32
|
||||
@@ -1,117 +0,0 @@
|
||||
# -*- Mode: makefile -*-
|
||||
#
|
||||
# ***** BEGIN LICENSE BLOCK *****
|
||||
# Version: MPL 1.1/GPL 2.0/LGPL 2.1
|
||||
#
|
||||
# The contents of this file are subject to the Mozilla Public License Version
|
||||
# 1.1 (the "License"); you may not use this file except in compliance with
|
||||
# the License. You may obtain a copy of the License at
|
||||
# http://www.mozilla.org/MPL/
|
||||
#
|
||||
# Software distributed under the License is distributed on an "AS IS" basis,
|
||||
# WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
|
||||
# for the specific language governing rights and limitations under the
|
||||
# License.
|
||||
#
|
||||
# The Original Code is Mozilla Communicator client code, released
|
||||
# March 31, 1998.
|
||||
#
|
||||
# The Initial Developer of the Original Code is
|
||||
# Netscape Communications Corporation.
|
||||
# Portions created by the Initial Developer are Copyright (C) 1998
|
||||
# the Initial Developer. All Rights Reserved.
|
||||
#
|
||||
# Contributor(s):
|
||||
#
|
||||
# Alternatively, the contents of this file may be used under the terms of
|
||||
# either the GNU General Public License Version 2 or later (the "GPL"), or
|
||||
# the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
|
||||
# in which case the provisions of the GPL or the LGPL are applicable instead
|
||||
# of those above. If you wish to allow use of your version of this file only
|
||||
# under the terms of either the GPL or the LGPL, and not to allow others to
|
||||
# use your version of this file under the terms of the MPL, indicate your
|
||||
# decision by deleting the provisions above and replace them with the notice
|
||||
# and other provisions required by the GPL or the LGPL. If you do not delete
|
||||
# the provisions above, a recipient may use your version of this file under
|
||||
# the terms of any one of the MPL, the GPL or the LGPL.
|
||||
#
|
||||
# ***** END LICENSE BLOCK *****
|
||||
|
||||
#
|
||||
# Config for Windows NT using MS Visual C++ (version?)
|
||||
#
|
||||
|
||||
CC = cl
|
||||
|
||||
RANLIB = echo
|
||||
|
||||
PDBFILE = $(basename $(@F)).pdb
|
||||
|
||||
#.c.o:
|
||||
# $(CC) -c -MD $*.d $(CFLAGS) $<
|
||||
|
||||
CPU_ARCH = x86 # XXX fixme
|
||||
GFX_ARCH = win32
|
||||
|
||||
# MSVC compiler options for both debug/optimize
|
||||
# -nologo - suppress copyright message
|
||||
# -W3 - Warning level 3
|
||||
# -Gm - enable minimal rebuild
|
||||
# -Z7 - put debug info into the executable, not in .pdb file
|
||||
# -Zi - put debug info into .pdb file
|
||||
# -YX - automatic precompiled headers
|
||||
# -GX - enable C++ exception support
|
||||
WIN_CFLAGS = -nologo -W3
|
||||
|
||||
# MSVC compiler options for debug builds linked to MSVCRTD.DLL
|
||||
# -MDd - link with MSVCRTD.LIB (Dynamically-linked, multi-threaded, debug C-runtime)
|
||||
# -Od - minimal optimization
|
||||
WIN_IDG_CFLAGS = -MDd -Od -Z7
|
||||
|
||||
# MSVC compiler options for debug builds linked to MSVCRT.DLL
|
||||
# -MD - link with MSVCRT.LIB (Dynamically-linked, multi-threaded, debug C-runtime)
|
||||
# -Od - minimal optimization
|
||||
WIN_DEBUG_CFLAGS = -MD -Od -Zi -Fd$(OBJDIR)/$(PDBFILE)
|
||||
|
||||
# MSVC compiler options for release (optimized) builds
|
||||
# -MD - link with MSVCRT.LIB (Dynamically-linked, multi-threaded, C-runtime)
|
||||
# -O2 - Optimize for speed
|
||||
# -G5 - Optimize for Pentium
|
||||
WIN_OPT_CFLAGS = -MD -O2
|
||||
|
||||
ifdef BUILD_OPT
|
||||
OPTIMIZER = $(WIN_OPT_CFLAGS)
|
||||
else
|
||||
ifdef BUILD_IDG
|
||||
OPTIMIZER = $(WIN_IDG_CFLAGS)
|
||||
else
|
||||
OPTIMIZER = $(WIN_DEBUG_CFLAGS)
|
||||
endif
|
||||
endif
|
||||
|
||||
OS_CFLAGS = -D_X86_=1 -DXP_WIN -DXP_WIN32 -DWIN32 -D_WINDOWS -D_WIN32 -DWINVER=0x500 -D_WIN32_WINNT=0x500 $(WIN_CFLAGS)
|
||||
JSDLL_CFLAGS = -DEXPORT_JS_API
|
||||
OS_LIBS = -lm -lc
|
||||
|
||||
PREBUILT_CPUCFG = 1
|
||||
USE_MSVC = 1
|
||||
|
||||
LIB_LINK_FLAGS=kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib\
|
||||
advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib oldnames.lib \
|
||||
winmm.lib \
|
||||
-nologo\
|
||||
-subsystem:windows -dll -debug -pdb:$(OBJDIR)/$(PDBFILE)\
|
||||
-machine:I386\
|
||||
-opt:ref -opt:noicf
|
||||
|
||||
EXE_LINK_FLAGS=kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib\
|
||||
advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib oldnames.lib -nologo\
|
||||
-subsystem:console -debug -pdb:$(OBJDIR)/$(PDBFILE)\
|
||||
-machine:I386\
|
||||
-opt:ref -opt:noicf
|
||||
|
||||
# CAFEDIR = t:/cafe
|
||||
# JCLASSPATH = $(CAFEDIR)/Java/Lib/classes.zip
|
||||
# JAVAC = $(CAFEDIR)/Bin/sj.exe
|
||||
# JAVAH = $(CAFEDIR)/Java/Bin/javah.exe
|
||||
# JCFLAGS = -I$(CAFEDIR)/Java/Include -I$(CAFEDIR)/Java/Include/win32
|
||||
@@ -1,117 +0,0 @@
|
||||
# -*- Mode: makefile -*-
|
||||
#
|
||||
# ***** BEGIN LICENSE BLOCK *****
|
||||
# Version: MPL 1.1/GPL 2.0/LGPL 2.1
|
||||
#
|
||||
# The contents of this file are subject to the Mozilla Public License Version
|
||||
# 1.1 (the "License"); you may not use this file except in compliance with
|
||||
# the License. You may obtain a copy of the License at
|
||||
# http://www.mozilla.org/MPL/
|
||||
#
|
||||
# Software distributed under the License is distributed on an "AS IS" basis,
|
||||
# WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
|
||||
# for the specific language governing rights and limitations under the
|
||||
# License.
|
||||
#
|
||||
# The Original Code is Mozilla Communicator client code, released
|
||||
# March 31, 1998.
|
||||
#
|
||||
# The Initial Developer of the Original Code is
|
||||
# Netscape Communications Corporation.
|
||||
# Portions created by the Initial Developer are Copyright (C) 1998
|
||||
# the Initial Developer. All Rights Reserved.
|
||||
#
|
||||
# Contributor(s):
|
||||
#
|
||||
# Alternatively, the contents of this file may be used under the terms of
|
||||
# either the GNU General Public License Version 2 or later (the "GPL"), or
|
||||
# the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
|
||||
# in which case the provisions of the GPL or the LGPL are applicable instead
|
||||
# of those above. If you wish to allow use of your version of this file only
|
||||
# under the terms of either the GPL or the LGPL, and not to allow others to
|
||||
# use your version of this file under the terms of the MPL, indicate your
|
||||
# decision by deleting the provisions above and replace them with the notice
|
||||
# and other provisions required by the GPL or the LGPL. If you do not delete
|
||||
# the provisions above, a recipient may use your version of this file under
|
||||
# the terms of any one of the MPL, the GPL or the LGPL.
|
||||
#
|
||||
# ***** END LICENSE BLOCK *****
|
||||
|
||||
#
|
||||
# Config for Windows NT using MS Visual C++ (version?)
|
||||
#
|
||||
|
||||
CC = cl
|
||||
|
||||
RANLIB = echo
|
||||
|
||||
PDBFILE = $(basename $(@F)).pdb
|
||||
|
||||
#.c.o:
|
||||
# $(CC) -c -MD $*.d $(CFLAGS) $<
|
||||
|
||||
CPU_ARCH = x86 # XXX fixme
|
||||
GFX_ARCH = win32
|
||||
|
||||
# MSVC compiler options for both debug/optimize
|
||||
# -nologo - suppress copyright message
|
||||
# -W3 - Warning level 3
|
||||
# -Gm - enable minimal rebuild
|
||||
# -Z7 - put debug info into the executable, not in .pdb file
|
||||
# -Zi - put debug info into .pdb file
|
||||
# -YX - automatic precompiled headers
|
||||
# -GX - enable C++ exception support
|
||||
WIN_CFLAGS = -nologo -W3
|
||||
|
||||
# MSVC compiler options for debug builds linked to MSVCRTD.DLL
|
||||
# -MDd - link with MSVCRTD.LIB (Dynamically-linked, multi-threaded, debug C-runtime)
|
||||
# -Od - minimal optimization
|
||||
WIN_IDG_CFLAGS = -MDd -Od -Z7
|
||||
|
||||
# MSVC compiler options for debug builds linked to MSVCRT.DLL
|
||||
# -MD - link with MSVCRT.LIB (Dynamically-linked, multi-threaded, debug C-runtime)
|
||||
# -Od - minimal optimization
|
||||
WIN_DEBUG_CFLAGS = -MD -Od -Zi -Fd$(OBJDIR)/$(PDBFILE)
|
||||
|
||||
# MSVC compiler options for release (optimized) builds
|
||||
# -MD - link with MSVCRT.LIB (Dynamically-linked, multi-threaded, C-runtime)
|
||||
# -O2 - Optimize for speed
|
||||
# -G5 - Optimize for Pentium
|
||||
WIN_OPT_CFLAGS = -MD -O2
|
||||
|
||||
ifdef BUILD_OPT
|
||||
OPTIMIZER = $(WIN_OPT_CFLAGS)
|
||||
else
|
||||
ifdef BUILD_IDG
|
||||
OPTIMIZER = $(WIN_IDG_CFLAGS)
|
||||
else
|
||||
OPTIMIZER = $(WIN_DEBUG_CFLAGS)
|
||||
endif
|
||||
endif
|
||||
|
||||
OS_CFLAGS = -D_X86_=1 -DXP_WIN -DXP_WIN32 -DWIN32 -D_WINDOWS -D_WIN32 -DWINVER=0x500 -D_WIN32_WINNT=0x500 $(WIN_CFLAGS)
|
||||
JSDLL_CFLAGS = -DEXPORT_JS_API
|
||||
OS_LIBS = -lm -lc
|
||||
|
||||
PREBUILT_CPUCFG = 1
|
||||
USE_MSVC = 1
|
||||
|
||||
LIB_LINK_FLAGS=kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib\
|
||||
advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib oldnames.lib \
|
||||
winmm.lib \
|
||||
-nologo\
|
||||
-subsystem:windows -dll -debug -pdb:$(OBJDIR)/$(PDBFILE)\
|
||||
-machine:I386\
|
||||
-opt:ref -opt:noicf
|
||||
|
||||
EXE_LINK_FLAGS=kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib\
|
||||
advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib oldnames.lib -nologo\
|
||||
-subsystem:console -debug -pdb:$(OBJDIR)/$(PDBFILE)\
|
||||
-machine:I386\
|
||||
-opt:ref -opt:noicf
|
||||
|
||||
# CAFEDIR = t:/cafe
|
||||
# JCLASSPATH = $(CAFEDIR)/Java/Lib/classes.zip
|
||||
# JAVAC = $(CAFEDIR)/Bin/sj.exe
|
||||
# JAVAH = $(CAFEDIR)/Java/Bin/javah.exe
|
||||
# JCFLAGS = -I$(CAFEDIR)/Java/Include -I$(CAFEDIR)/Java/Include/win32
|
||||
@@ -1,117 +0,0 @@
|
||||
# -*- Mode: makefile -*-
|
||||
#
|
||||
# ***** BEGIN LICENSE BLOCK *****
|
||||
# Version: MPL 1.1/GPL 2.0/LGPL 2.1
|
||||
#
|
||||
# The contents of this file are subject to the Mozilla Public License Version
|
||||
# 1.1 (the "License"); you may not use this file except in compliance with
|
||||
# the License. You may obtain a copy of the License at
|
||||
# http://www.mozilla.org/MPL/
|
||||
#
|
||||
# Software distributed under the License is distributed on an "AS IS" basis,
|
||||
# WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
|
||||
# for the specific language governing rights and limitations under the
|
||||
# License.
|
||||
#
|
||||
# The Original Code is Mozilla Communicator client code, released
|
||||
# March 31, 1998.
|
||||
#
|
||||
# The Initial Developer of the Original Code is
|
||||
# Netscape Communications Corporation.
|
||||
# Portions created by the Initial Developer are Copyright (C) 1998
|
||||
# the Initial Developer. All Rights Reserved.
|
||||
#
|
||||
# Contributor(s):
|
||||
#
|
||||
# Alternatively, the contents of this file may be used under the terms of
|
||||
# either the GNU General Public License Version 2 or later (the "GPL"), or
|
||||
# the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
|
||||
# in which case the provisions of the GPL or the LGPL are applicable instead
|
||||
# of those above. If you wish to allow use of your version of this file only
|
||||
# under the terms of either the GPL or the LGPL, and not to allow others to
|
||||
# use your version of this file under the terms of the MPL, indicate your
|
||||
# decision by deleting the provisions above and replace them with the notice
|
||||
# and other provisions required by the GPL or the LGPL. If you do not delete
|
||||
# the provisions above, a recipient may use your version of this file under
|
||||
# the terms of any one of the MPL, the GPL or the LGPL.
|
||||
#
|
||||
# ***** END LICENSE BLOCK *****
|
||||
|
||||
#
|
||||
# Config for Windows NT using MS Visual C++ (version?)
|
||||
#
|
||||
|
||||
CC = cl
|
||||
|
||||
RANLIB = echo
|
||||
|
||||
PDBFILE = $(basename $(@F)).pdb
|
||||
|
||||
#.c.o:
|
||||
# $(CC) -c -MD $*.d $(CFLAGS) $<
|
||||
|
||||
CPU_ARCH = x86 # XXX fixme
|
||||
GFX_ARCH = win32
|
||||
|
||||
# MSVC compiler options for both debug/optimize
|
||||
# -nologo - suppress copyright message
|
||||
# -W3 - Warning level 3
|
||||
# -Gm - enable minimal rebuild
|
||||
# -Z7 - put debug info into the executable, not in .pdb file
|
||||
# -Zi - put debug info into .pdb file
|
||||
# -YX - automatic precompiled headers
|
||||
# -GX - enable C++ exception support
|
||||
WIN_CFLAGS = -nologo -W3
|
||||
|
||||
# MSVC compiler options for debug builds linked to MSVCRTD.DLL
|
||||
# -MDd - link with MSVCRTD.LIB (Dynamically-linked, multi-threaded, debug C-runtime)
|
||||
# -Od - minimal optimization
|
||||
WIN_IDG_CFLAGS = -MDd -Od -Z7
|
||||
|
||||
# MSVC compiler options for debug builds linked to MSVCRT.DLL
|
||||
# -MD - link with MSVCRT.LIB (Dynamically-linked, multi-threaded, debug C-runtime)
|
||||
# -Od - minimal optimization
|
||||
WIN_DEBUG_CFLAGS = -MD -Od -Zi -Fd$(OBJDIR)/$(PDBFILE)
|
||||
|
||||
# MSVC compiler options for release (optimized) builds
|
||||
# -MD - link with MSVCRT.LIB (Dynamically-linked, multi-threaded, C-runtime)
|
||||
# -O2 - Optimize for speed
|
||||
# -G5 - Optimize for Pentium
|
||||
WIN_OPT_CFLAGS = -MD -O2
|
||||
|
||||
ifdef BUILD_OPT
|
||||
OPTIMIZER = $(WIN_OPT_CFLAGS)
|
||||
else
|
||||
ifdef BUILD_IDG
|
||||
OPTIMIZER = $(WIN_IDG_CFLAGS)
|
||||
else
|
||||
OPTIMIZER = $(WIN_DEBUG_CFLAGS)
|
||||
endif
|
||||
endif
|
||||
|
||||
OS_CFLAGS = -D_X86_=1 -DXP_WIN -DXP_WIN32 -DWIN32 -D_WINDOWS -D_WIN32 -DWINVER=0x500 -D_WIN32_WINNT=0x500 $(WIN_CFLAGS)
|
||||
JSDLL_CFLAGS = -DEXPORT_JS_API
|
||||
OS_LIBS = -lm -lc
|
||||
|
||||
PREBUILT_CPUCFG = 1
|
||||
USE_MSVC = 1
|
||||
|
||||
LIB_LINK_FLAGS=kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib\
|
||||
advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib oldnames.lib \
|
||||
winmm.lib \
|
||||
-nologo\
|
||||
-subsystem:windows -dll -debug -pdb:$(OBJDIR)/$(PDBFILE)\
|
||||
-machine:I386\
|
||||
-opt:ref -opt:noicf
|
||||
|
||||
EXE_LINK_FLAGS=kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib\
|
||||
advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib oldnames.lib -nologo\
|
||||
-subsystem:console -debug -pdb:$(OBJDIR)/$(PDBFILE)\
|
||||
-machine:I386\
|
||||
-opt:ref -opt:noicf
|
||||
|
||||
# CAFEDIR = t:/cafe
|
||||
# JCLASSPATH = $(CAFEDIR)/Java/Lib/classes.zip
|
||||
# JAVAC = $(CAFEDIR)/Bin/sj.exe
|
||||
# JAVAH = $(CAFEDIR)/Java/Bin/javah.exe
|
||||
# JCFLAGS = -I$(CAFEDIR)/Java/Include -I$(CAFEDIR)/Java/Include/win32
|
||||
@@ -1,64 +0,0 @@
|
||||
# -*- Mode: makefile -*-
|
||||
#
|
||||
# ***** BEGIN LICENSE BLOCK *****
|
||||
# Version: MPL 1.1/GPL 2.0/LGPL 2.1
|
||||
#
|
||||
# The contents of this file are subject to the Mozilla Public License Version
|
||||
# 1.1 (the "License"); you may not use this file except in compliance with
|
||||
# the License. You may obtain a copy of the License at
|
||||
# http://www.mozilla.org/MPL/
|
||||
#
|
||||
# Software distributed under the License is distributed on an "AS IS" basis,
|
||||
# WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
|
||||
# for the specific language governing rights and limitations under the
|
||||
# License.
|
||||
#
|
||||
# The Original Code is Mozilla Communicator client code, released
|
||||
# March 31, 1998.
|
||||
#
|
||||
# The Initial Developer of the Original Code is
|
||||
# Netscape Communications Corporation.
|
||||
# Portions created by the Initial Developer are Copyright (C) 1998
|
||||
# the Initial Developer. All Rights Reserved.
|
||||
#
|
||||
# Contributor(s):
|
||||
#
|
||||
# Alternatively, the contents of this file may be used under the terms of
|
||||
# either the GNU General Public License Version 2 or later (the "GPL"), or
|
||||
# the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
|
||||
# in which case the provisions of the GPL or the LGPL are applicable instead
|
||||
# of those above. If you wish to allow use of your version of this file only
|
||||
# under the terms of either the GPL or the LGPL, and not to allow others to
|
||||
# use your version of this file under the terms of the MPL, indicate your
|
||||
# decision by deleting the provisions above and replace them with the notice
|
||||
# and other provisions required by the GPL or the LGPL. If you do not delete
|
||||
# the provisions above, a recipient may use your version of this file under
|
||||
# the terms of any one of the MPL, the GPL or the LGPL.
|
||||
#
|
||||
# ***** END LICENSE BLOCK *****
|
||||
|
||||
#
|
||||
# Config stuff for Data General DG/UX
|
||||
#
|
||||
|
||||
#
|
||||
# Initial DG/UX port by Marc Fraioli (fraioli@dg-rtp.dg.com)
|
||||
#
|
||||
|
||||
AS = as
|
||||
CC = gcc
|
||||
CCC = g++
|
||||
|
||||
RANLIB = echo
|
||||
|
||||
#
|
||||
# _DGUX_SOURCE is needed to turn on a lot of stuff in the headers if
|
||||
# you're not using DG's compiler. It shouldn't hurt if you are.
|
||||
#
|
||||
# _POSIX4A_DRAFT10_SOURCE is needed to pick up localtime_r, used in
|
||||
# prtime.c
|
||||
#
|
||||
OS_CFLAGS = -DXP_UNIX -DSVR4 -DSYSV -DDGUX -D_DGUX_SOURCE -D_POSIX4A_DRAFT10_SOURCE -DHAVE_LOCALTIME_R
|
||||
OS_LIBS = -lsocket -lnsl
|
||||
|
||||
NOSUCHFILE = /no-such-file
|
||||
@@ -1,7 +0,0 @@
|
||||
*.pdb
|
||||
*.ncb
|
||||
*.opt
|
||||
*.plg
|
||||
Debug
|
||||
Release
|
||||
Makefile
|
||||
@@ -1,87 +0,0 @@
|
||||
/.cvsignore/1.3/Sat Dec 5 09:02:32 1998//TJS_170
|
||||
/Makefile.in/1.13/Sat Nov 15 00:11:04 2003//TJS_170
|
||||
/Makefile.ref/1.7/Sat Nov 15 00:11:04 2003//TJS_170
|
||||
/e_acos.c/1.9/Sat Nov 15 00:11:04 2003//TJS_170
|
||||
/e_acosh.c/1.8/Sat Nov 15 00:11:04 2003//TJS_170
|
||||
/e_asin.c/1.10/Sat Nov 15 00:11:04 2003//TJS_170
|
||||
/e_atan2.c/1.9/Sat Nov 15 00:11:04 2003//TJS_170
|
||||
/e_atanh.c/1.9/Sat Nov 15 00:11:04 2003//TJS_170
|
||||
/e_cosh.c/1.9/Sat Nov 15 00:11:04 2003//TJS_170
|
||||
/e_exp.c/1.10/Sat Nov 15 00:11:04 2003//TJS_170
|
||||
/e_fmod.c/1.8/Sat Nov 15 00:11:04 2003//TJS_170
|
||||
/e_gamma.c/1.7/Sat Nov 15 00:11:04 2003//TJS_170
|
||||
/e_gamma_r.c/1.7/Sat Nov 15 00:11:04 2003//TJS_170
|
||||
/e_hypot.c/1.8/Sat Nov 15 00:11:04 2003//TJS_170
|
||||
/e_j0.c/1.9/Sat Nov 15 00:11:05 2003//TJS_170
|
||||
/e_j1.c/1.9/Sat Nov 15 00:11:05 2003//TJS_170
|
||||
/e_jn.c/1.8/Sat Nov 15 00:11:05 2003//TJS_170
|
||||
/e_lgamma.c/1.7/Sat Nov 15 00:11:05 2003//TJS_170
|
||||
/e_lgamma_r.c/1.8/Sat Nov 15 00:11:05 2003//TJS_170
|
||||
/e_log.c/1.10/Sat Nov 15 00:11:05 2003//TJS_170
|
||||
/e_log10.c/1.8/Sat Nov 15 00:11:05 2003//TJS_170
|
||||
/e_pow.c/1.12/Sat Nov 15 00:11:05 2003//TJS_170
|
||||
/e_rem_pio2.c/1.9/Thu Jul 7 18:26:28 2005//TJS_170
|
||||
/e_remainder.c/1.8/Sat Nov 15 00:11:05 2003//TJS_170
|
||||
/e_scalb.c/1.7/Sat Nov 15 00:11:05 2003//TJS_170
|
||||
/e_sinh.c/1.8/Sat Nov 15 00:11:05 2003//TJS_170
|
||||
/e_sqrt.c/1.10/Sat Nov 15 00:11:05 2003//TJS_170
|
||||
/fdlibm.h/1.16.2.1/Mon Mar 27 05:55:15 2006//TJS_170
|
||||
/fdlibm.mak/1.3/Sun Apr 4 19:46:38 2004//TJS_170
|
||||
/fdlibm.mdp/1.3/Wed May 26 01:34:31 1999/-kb/TJS_170
|
||||
/k_cos.c/1.9/Thu Jul 7 18:26:28 2005//TJS_170
|
||||
/k_rem_pio2.c/1.7/Sat Nov 15 00:11:05 2003//TJS_170
|
||||
/k_sin.c/1.8/Sat Nov 15 00:11:05 2003//TJS_170
|
||||
/k_standard.c/1.12/Sat Nov 15 00:11:05 2003//TJS_170
|
||||
/k_tan.c/1.8/Sat Nov 15 00:11:05 2003//TJS_170
|
||||
/s_asinh.c/1.9/Sat Nov 15 00:11:05 2003//TJS_170
|
||||
/s_atan.c/1.9/Sat Nov 15 00:11:05 2003//TJS_170
|
||||
/s_cbrt.c/1.8/Sat Nov 15 00:11:05 2003//TJS_170
|
||||
/s_ceil.c/1.9/Sat Nov 15 00:11:05 2003//TJS_170
|
||||
/s_copysign.c/1.8/Sat Nov 15 00:11:05 2003//TJS_170
|
||||
/s_cos.c/1.8/Sat Nov 15 00:11:05 2003//TJS_170
|
||||
/s_erf.c/1.8/Sat Nov 15 00:11:05 2003//TJS_170
|
||||
/s_expm1.c/1.9/Sat Nov 15 00:11:05 2003//TJS_170
|
||||
/s_fabs.c/1.8/Sat Nov 15 00:11:05 2003//TJS_170
|
||||
/s_finite.c/1.8/Sat Nov 15 00:11:05 2003//TJS_170
|
||||
/s_floor.c/1.9/Sat Nov 15 00:11:05 2003//TJS_170
|
||||
/s_frexp.c/1.8/Sat Nov 15 00:11:05 2003//TJS_170
|
||||
/s_ilogb.c/1.8/Sat Nov 15 00:11:05 2003//TJS_170
|
||||
/s_isnan.c/1.8/Sat Nov 15 00:11:05 2003//TJS_170
|
||||
/s_ldexp.c/1.7/Sat Nov 15 00:11:05 2003//TJS_170
|
||||
/s_lib_version.c/1.7/Sat Nov 15 00:11:05 2003//TJS_170
|
||||
/s_log1p.c/1.8/Sat Nov 15 00:11:05 2003//TJS_170
|
||||
/s_logb.c/1.8/Sat Nov 15 00:11:05 2003//TJS_170
|
||||
/s_matherr.c/1.7/Sat Nov 15 00:11:05 2003//TJS_170
|
||||
/s_modf.c/1.8/Sat Nov 15 00:11:05 2003//TJS_170
|
||||
/s_nextafter.c/1.8/Sat Nov 15 00:11:05 2003//TJS_170
|
||||
/s_rint.c/1.8/Sat Nov 15 00:11:05 2003//TJS_170
|
||||
/s_scalbn.c/1.10/Sat Nov 15 00:11:05 2003//TJS_170
|
||||
/s_signgam.c/1.7/Sat Nov 15 00:11:05 2003//TJS_170
|
||||
/s_significand.c/1.7/Sat Nov 15 00:11:05 2003//TJS_170
|
||||
/s_sin.c/1.8/Sat Nov 15 00:11:05 2003//TJS_170
|
||||
/s_tan.c/1.8/Sat Nov 15 00:11:05 2003//TJS_170
|
||||
/s_tanh.c/1.8/Sat Nov 15 00:11:05 2003//TJS_170
|
||||
/w_acos.c/1.8/Sat Nov 15 00:11:05 2003//TJS_170
|
||||
/w_acosh.c/1.8/Sat Nov 15 00:11:05 2003//TJS_170
|
||||
/w_asin.c/1.8/Sat Nov 15 00:11:05 2003//TJS_170
|
||||
/w_atan2.c/1.8/Sat Nov 15 00:11:05 2003//TJS_170
|
||||
/w_atanh.c/1.8/Sat Nov 15 00:11:05 2003//TJS_170
|
||||
/w_cosh.c/1.8/Sat Nov 15 00:11:05 2003//TJS_170
|
||||
/w_exp.c/1.8/Sat Nov 15 00:11:05 2003//TJS_170
|
||||
/w_fmod.c/1.8/Sat Nov 15 00:11:05 2003//TJS_170
|
||||
/w_gamma.c/1.8/Sat Nov 15 00:11:05 2003//TJS_170
|
||||
/w_gamma_r.c/1.8/Sat Nov 15 00:11:05 2003//TJS_170
|
||||
/w_hypot.c/1.8/Sat Nov 15 00:11:05 2003//TJS_170
|
||||
/w_j0.c/1.8/Sat Nov 15 00:11:05 2003//TJS_170
|
||||
/w_j1.c/1.8/Sat Nov 15 00:11:05 2003//TJS_170
|
||||
/w_jn.c/1.8/Sat Nov 15 00:11:05 2003//TJS_170
|
||||
/w_lgamma.c/1.8/Sat Nov 15 00:11:05 2003//TJS_170
|
||||
/w_lgamma_r.c/1.8/Sat Nov 15 00:11:05 2003//TJS_170
|
||||
/w_log.c/1.8/Sat Nov 15 00:11:05 2003//TJS_170
|
||||
/w_log10.c/1.8/Sat Nov 15 00:11:05 2003//TJS_170
|
||||
/w_pow.c/1.8/Sat Nov 15 00:11:05 2003//TJS_170
|
||||
/w_remainder.c/1.8/Sat Nov 15 00:11:05 2003//TJS_170
|
||||
/w_scalb.c/1.8/Sat Nov 15 00:11:05 2003//TJS_170
|
||||
/w_sinh.c/1.8/Sat Nov 15 00:11:05 2003//TJS_170
|
||||
/w_sqrt.c/1.8/Sat Nov 15 00:11:05 2003//TJS_170
|
||||
D
|
||||
@@ -1 +0,0 @@
|
||||
mozilla/js/src/fdlibm
|
||||
@@ -1 +0,0 @@
|
||||
:pserver:anonymous@cvs-mirror.mozilla.org:/cvsroot
|
||||
@@ -1 +0,0 @@
|
||||
NJS_170
|
||||
@@ -1,127 +0,0 @@
|
||||
#
|
||||
# ***** BEGIN LICENSE BLOCK *****
|
||||
# Version: MPL 1.1/GPL 2.0/LGPL 2.1
|
||||
#
|
||||
# The contents of this file are subject to the Mozilla Public License Version
|
||||
# 1.1 (the "License"); you may not use this file except in compliance with
|
||||
# the License. You may obtain a copy of the License at
|
||||
# http://www.mozilla.org/MPL/
|
||||
#
|
||||
# Software distributed under the License is distributed on an "AS IS" basis,
|
||||
# WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
|
||||
# for the specific language governing rights and limitations under the
|
||||
# License.
|
||||
#
|
||||
# The Original Code is Mozilla Communicator client code, released
|
||||
# March 31, 1998.
|
||||
#
|
||||
# The Initial Developer of the Original Code is
|
||||
# Netscape Communications Corporation.
|
||||
# Portions created by the Initial Developer are Copyright (C) 1998
|
||||
# the Initial Developer. All Rights Reserved.
|
||||
#
|
||||
# Contributor(s):
|
||||
#
|
||||
# Alternatively, the contents of this file may be used under the terms of
|
||||
# either of the GNU General Public License Version 2 or later (the "GPL"),
|
||||
# or the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
|
||||
# in which case the provisions of the GPL or the LGPL are applicable instead
|
||||
# of those above. If you wish to allow use of your version of this file only
|
||||
# under the terms of either the GPL or the LGPL, and not to allow others to
|
||||
# use your version of this file under the terms of the MPL, indicate your
|
||||
# decision by deleting the provisions above and replace them with the notice
|
||||
# and other provisions required by the GPL or the LGPL. If you do not delete
|
||||
# the provisions above, a recipient may use your version of this file under
|
||||
# the terms of any one of the MPL, the GPL or the LGPL.
|
||||
#
|
||||
# ***** END LICENSE BLOCK *****
|
||||
|
||||
DEPTH = ../../..
|
||||
topsrcdir = @top_srcdir@
|
||||
srcdir = @srcdir@
|
||||
VPATH = @srcdir@
|
||||
|
||||
include $(DEPTH)/config/autoconf.mk
|
||||
|
||||
MODULE = js
|
||||
LIBRARY_NAME = fdm
|
||||
|
||||
CSRCS = \
|
||||
e_acos.c \
|
||||
e_asin.c \
|
||||
e_atan2.c \
|
||||
e_exp.c \
|
||||
e_fmod.c \
|
||||
e_log.c \
|
||||
e_pow.c \
|
||||
e_rem_pio2.c \
|
||||
s_scalbn.c \
|
||||
e_sqrt.c \
|
||||
k_cos.c \
|
||||
k_sin.c \
|
||||
k_rem_pio2.c \
|
||||
k_tan.c \
|
||||
s_atan.c \
|
||||
s_ceil.c \
|
||||
s_copysign.c \
|
||||
s_cos.c \
|
||||
s_fabs.c \
|
||||
s_finite.c \
|
||||
s_floor.c \
|
||||
s_isnan.c \
|
||||
s_lib_version.c \
|
||||
s_sin.c \
|
||||
s_tan.c \
|
||||
w_acos.c \
|
||||
w_asin.c \
|
||||
w_atan2.c \
|
||||
w_exp.c \
|
||||
w_fmod.c \
|
||||
w_log.c \
|
||||
w_pow.c \
|
||||
w_sqrt.c \
|
||||
$(NULL)
|
||||
|
||||
EXPORTS = fdlibm.h
|
||||
|
||||
# we need to force a static lib for the linking that js/src/Makefile.in wants
|
||||
# to do, and we don't really need a shared library ever, so:
|
||||
FORCE_STATIC_LIB = 1
|
||||
FORCE_USE_PIC = 1
|
||||
|
||||
include $(topsrcdir)/config/rules.mk
|
||||
|
||||
#
|
||||
# Default IEEE libm
|
||||
#
|
||||
CFLAGS += -D_IEEE_LIBM
|
||||
|
||||
ifeq ($(OS_ARCH),Linux)
|
||||
LDFLAGS += -ldl
|
||||
endif
|
||||
|
||||
ifeq ($(OS_ARCH),OSF1)
|
||||
LDFLAGS += -lc_r
|
||||
endif
|
||||
|
||||
ifeq ($(OS_ARCH),SunOS)
|
||||
LDFLAGS += -lposix4 -ldl -lnsl -lsocket
|
||||
ifeq ($(CPU_ARCH),sparc)
|
||||
|
||||
ifndef JS_NO_ULTRA
|
||||
ULTRA_OPTIONS := -xarch=v8plus,-DULTRA_SPARC
|
||||
ULTRA_OPTIONSCC := -DULTRA_SPARC
|
||||
else
|
||||
ULTRA_OPTIONS := -xarch=v8
|
||||
ULTRA_OPTIONSCC :=
|
||||
endif
|
||||
|
||||
ifeq ($(shell uname -m),sun4u)
|
||||
ASFLAGS += -Wa,$(ULTRA_OPTIONS),-P,-L,-D_ASM,-D__STDC__=0 $(ULTRA_OPTIONSCC)
|
||||
else
|
||||
ASFLAGS += -Wa,-xarch=v8,-P,-L,-D_ASM,-D__STDC__=0
|
||||
endif
|
||||
|
||||
endif
|
||||
endif
|
||||
|
||||
@@ -1,192 +0,0 @@
|
||||
# -*- Mode: makefile -*-
|
||||
#
|
||||
# ***** BEGIN LICENSE BLOCK *****
|
||||
# Version: MPL 1.1/GPL 2.0/LGPL 2.1
|
||||
#
|
||||
# The contents of this file are subject to the Mozilla Public License Version
|
||||
# 1.1 (the "License"); you may not use this file except in compliance with
|
||||
# the License. You may obtain a copy of the License at
|
||||
# http://www.mozilla.org/MPL/
|
||||
#
|
||||
# Software distributed under the License is distributed on an "AS IS" basis,
|
||||
# WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
|
||||
# for the specific language governing rights and limitations under the
|
||||
# License.
|
||||
#
|
||||
# The Original Code is Mozilla Communicator client code, released
|
||||
# March 31, 1998.
|
||||
#
|
||||
# The Initial Developer of the Original Code is
|
||||
# Sun Microsystems, Inc.
|
||||
# Portions created by the Initial Developer are Copyright (C) 1998
|
||||
# the Initial Developer. All Rights Reserved.
|
||||
#
|
||||
# Contributor(s):
|
||||
#
|
||||
# Alternatively, the contents of this file may be used under the terms of
|
||||
# either of the GNU General Public License Version 2 or later (the "GPL"),
|
||||
# or the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
|
||||
# in which case the provisions of the GPL or the LGPL are applicable instead
|
||||
# of those above. If you wish to allow use of your version of this file only
|
||||
# under the terms of either the GPL or the LGPL, and not to allow others to
|
||||
# use your version of this file under the terms of the MPL, indicate your
|
||||
# decision by deleting the provisions above and replace them with the notice
|
||||
# and other provisions required by the GPL or the LGPL. If you do not delete
|
||||
# the provisions above, a recipient may use your version of this file under
|
||||
# the terms of any one of the MPL, the GPL or the LGPL.
|
||||
#
|
||||
# ***** END LICENSE BLOCK *****
|
||||
|
||||
#
|
||||
# @(#)Makefile 1.4 95/01/18
|
||||
#
|
||||
# ====================================================
|
||||
# Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved.
|
||||
#
|
||||
# Developed at SunSoft, a Sun Microsystems, Inc. business.
|
||||
# Permission to use, copy, modify, and distribute this
|
||||
# software is freely granted, provided that this notice
|
||||
# is preserved.
|
||||
# ====================================================
|
||||
#
|
||||
#
|
||||
|
||||
#
|
||||
# There are two options in making libm at fdlibm compile time:
|
||||
# _IEEE_LIBM --- IEEE libm; smaller, and somewhat faster
|
||||
# _MULTI_LIBM --- Support multi-standard at runtime by
|
||||
# imposing wrapper functions defined in
|
||||
# fdlibm.h:
|
||||
# _IEEE_MODE -- IEEE
|
||||
# _XOPEN_MODE -- X/OPEN
|
||||
# _POSIX_MODE -- POSIX/ANSI
|
||||
# _SVID3_MODE -- SVID
|
||||
#
|
||||
# Here is how to set up CFLAGS to create the desired libm at
|
||||
# compile time:
|
||||
#
|
||||
# CFLAGS = -D_IEEE_LIBM ... IEEE libm (recommended)
|
||||
# CFLAGS = -D_SVID3_MODE ... Multi-standard supported
|
||||
# libm with SVID as the
|
||||
# default standard
|
||||
# CFLAGS = -D_XOPEN_MODE ... Multi-standard supported
|
||||
# libm with XOPEN as the
|
||||
# default standard
|
||||
# CFLAGS = -D_POSIX_MODE ... Multi-standard supported
|
||||
# libm with POSIX as the
|
||||
# default standard
|
||||
# CFLAGS = ... Multi-standard supported
|
||||
# libm with IEEE as the
|
||||
# default standard
|
||||
#
|
||||
# NOTE: if scalb's second arguement is an int, then one must
|
||||
# define _SCALB_INT in CFLAGS. The default prototype of scalb
|
||||
# is double scalb(double, double)
|
||||
#
|
||||
|
||||
DEPTH = ..
|
||||
|
||||
include $(DEPTH)/config.mk
|
||||
|
||||
#
|
||||
# Default IEEE libm
|
||||
#
|
||||
CFLAGS += -DXP_UNIX $(OPTIMIZER) $(OS_CFLAGS) $(DEFINES) $(INCLUDES) \
|
||||
-DJSFILE $(XCFLAGS) -D_IEEE_LIBM
|
||||
|
||||
# Need for jstypes.h and friends
|
||||
INCLUDES += -I..
|
||||
INCLUDES += -I../$(OBJDIR)
|
||||
|
||||
#CC = cc
|
||||
|
||||
INCFILES = fdlibm.h
|
||||
.INIT: $(INCFILES)
|
||||
.KEEP_STATE:
|
||||
FDLIBM_CFILES = \
|
||||
k_standard.c k_rem_pio2.c \
|
||||
k_cos.c k_sin.c k_tan.c \
|
||||
e_acos.c e_acosh.c e_asin.c e_atan2.c \
|
||||
e_atanh.c e_cosh.c e_exp.c e_fmod.c \
|
||||
e_gamma.c e_gamma_r.c e_hypot.c e_j0.c \
|
||||
e_j1.c e_jn.c e_lgamma.c e_lgamma_r.c \
|
||||
e_log.c e_log10.c e_pow.c e_rem_pio2.c e_remainder.c \
|
||||
e_scalb.c e_sinh.c e_sqrt.c \
|
||||
w_acos.c w_acosh.c w_asin.c w_atan2.c \
|
||||
w_atanh.c w_cosh.c w_exp.c w_fmod.c \
|
||||
w_gamma.c w_gamma_r.c w_hypot.c w_j0.c \
|
||||
w_j1.c w_jn.c w_lgamma.c w_lgamma_r.c \
|
||||
w_log.c w_log10.c w_pow.c w_remainder.c \
|
||||
w_scalb.c w_sinh.c w_sqrt.c \
|
||||
s_asinh.c s_atan.c s_cbrt.c s_ceil.c s_copysign.c \
|
||||
s_cos.c s_erf.c s_expm1.c s_fabs.c s_finite.c s_floor.c \
|
||||
s_frexp.c s_ilogb.c s_isnan.c s_ldexp.c s_lib_version.c \
|
||||
s_log1p.c s_logb.c s_matherr.c s_modf.c s_nextafter.c \
|
||||
s_rint.c s_scalbn.c s_signgam.c s_significand.c s_sin.c \
|
||||
s_tan.c s_tanh.c
|
||||
|
||||
ifdef USE_MSVC
|
||||
FDLIBM_OBJS = $(addprefix $(OBJDIR)/, $(FDLIBM_CFILES:.c=.obj))
|
||||
else
|
||||
FDLIBM_OBJS = $(addprefix $(OBJDIR)/, $(FDLIBM_CFILES:.c=.o))
|
||||
endif
|
||||
|
||||
ifdef USE_MSVC
|
||||
LIBRARY = $(OBJDIR)/fdlibm.lib
|
||||
else
|
||||
LIBRARY = $(OBJDIR)/libfdm.a
|
||||
endif
|
||||
|
||||
define MAKE_OBJDIR
|
||||
if test ! -d $(@D); then rm -rf $(@D); mkdir -p $(@D); fi
|
||||
endef
|
||||
|
||||
all: $(LIBRARY)
|
||||
|
||||
export:
|
||||
|
||||
$(OBJDIR)/%: %.c
|
||||
@$(MAKE_OBJDIR)
|
||||
$(CC) -o $@ $(CFLAGS) $*.c $(LDFLAGS)
|
||||
|
||||
$(OBJDIR)/%.o: %.c
|
||||
@$(MAKE_OBJDIR)
|
||||
$(CC) -o $@ -c $(CFLAGS) $*.c
|
||||
|
||||
$(OBJDIR)/%.o: %.s
|
||||
@$(MAKE_OBJDIR)
|
||||
$(AS) -o $@ $(ASFLAGS) $*.s
|
||||
|
||||
# windows only
|
||||
$(OBJDIR)/%.obj: %.c
|
||||
@$(MAKE_OBJDIR)
|
||||
$(CC) -Fo$(OBJDIR)/ -c $(CFLAGS) $*.c
|
||||
|
||||
ifeq ($(OS_ARCH),OS2)
|
||||
$(LIBRARY): $(FDLIBM_OBJS)
|
||||
$(AR) $@ $? $(AR_OS2_SUFFIX)
|
||||
$(RANLIB) $@
|
||||
else
|
||||
ifdef USE_MSVC
|
||||
$(LIBRARY): $(FDLIBM_OBJS)
|
||||
lib.exe /out:"$@" $?
|
||||
else
|
||||
$(LIBRARY): $(FDLIBM_OBJS)
|
||||
$(AR) rv $@ $?
|
||||
$(RANLIB) $@
|
||||
endif
|
||||
endif
|
||||
|
||||
libfdm.a : $(FDLIBM_OBJS)
|
||||
$(AR) cru $(OBJDIR)/libfdm.a $(FDLIBM_OBJS)
|
||||
$(RANLIB) $(OBJDIR)/libfdm.a
|
||||
|
||||
clean:
|
||||
rm -rf $(FDLIBM_OBJS)
|
||||
|
||||
clobber:
|
||||
rm -rf $(FDLIBM_OBJS) $(LIBRARY) $(DEPENDENCIES)
|
||||
|
||||
SUFFIXES: .i
|
||||
%.i: %.c
|
||||
$(CC) -C -E $(CFLAGS) $< > $*.i
|
||||
@@ -1,147 +0,0 @@
|
||||
/* -*- Mode: C; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 4 -*-
|
||||
*
|
||||
* ***** BEGIN LICENSE BLOCK *****
|
||||
* Version: MPL 1.1/GPL 2.0/LGPL 2.1
|
||||
*
|
||||
* The contents of this file are subject to the Mozilla Public License Version
|
||||
* 1.1 (the "License"); you may not use this file except in compliance with
|
||||
* the License. You may obtain a copy of the License at
|
||||
* http://www.mozilla.org/MPL/
|
||||
*
|
||||
* Software distributed under the License is distributed on an "AS IS" basis,
|
||||
* WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
|
||||
* for the specific language governing rights and limitations under the
|
||||
* License.
|
||||
*
|
||||
* The Original Code is Mozilla Communicator client code, released
|
||||
* March 31, 1998.
|
||||
*
|
||||
* The Initial Developer of the Original Code is
|
||||
* Sun Microsystems, Inc.
|
||||
* Portions created by the Initial Developer are Copyright (C) 1998
|
||||
* the Initial Developer. All Rights Reserved.
|
||||
*
|
||||
* Contributor(s):
|
||||
*
|
||||
* Alternatively, the contents of this file may be used under the terms of
|
||||
* either of the GNU General Public License Version 2 or later (the "GPL"),
|
||||
* or the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
|
||||
* in which case the provisions of the GPL or the LGPL are applicable instead
|
||||
* of those above. If you wish to allow use of your version of this file only
|
||||
* under the terms of either the GPL or the LGPL, and not to allow others to
|
||||
* use your version of this file under the terms of the MPL, indicate your
|
||||
* decision by deleting the provisions above and replace them with the notice
|
||||
* and other provisions required by the GPL or the LGPL. If you do not delete
|
||||
* the provisions above, a recipient may use your version of this file under
|
||||
* the terms of any one of the MPL, the GPL or the LGPL.
|
||||
*
|
||||
* ***** END LICENSE BLOCK ***** */
|
||||
|
||||
/* @(#)e_acos.c 1.3 95/01/18 */
|
||||
/*
|
||||
* ====================================================
|
||||
* Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved.
|
||||
*
|
||||
* Developed at SunSoft, a Sun Microsystems, Inc. business.
|
||||
* Permission to use, copy, modify, and distribute this
|
||||
* software is freely granted, provided that this notice
|
||||
* is preserved.
|
||||
* ====================================================
|
||||
*/
|
||||
|
||||
/* __ieee754_acos(x)
|
||||
* Method :
|
||||
* acos(x) = pi/2 - asin(x)
|
||||
* acos(-x) = pi/2 + asin(x)
|
||||
* For |x|<=0.5
|
||||
* acos(x) = pi/2 - (x + x*x^2*R(x^2)) (see asin.c)
|
||||
* For x>0.5
|
||||
* acos(x) = pi/2 - (pi/2 - 2asin(sqrt((1-x)/2)))
|
||||
* = 2asin(sqrt((1-x)/2))
|
||||
* = 2s + 2s*z*R(z) ...z=(1-x)/2, s=sqrt(z)
|
||||
* = 2f + (2c + 2s*z*R(z))
|
||||
* where f=hi part of s, and c = (z-f*f)/(s+f) is the correction term
|
||||
* for f so that f+c ~ sqrt(z).
|
||||
* For x<-0.5
|
||||
* acos(x) = pi - 2asin(sqrt((1-|x|)/2))
|
||||
* = pi - 0.5*(s+s*z*R(z)), where z=(1-|x|)/2,s=sqrt(z)
|
||||
*
|
||||
* Special cases:
|
||||
* if x is NaN, return x itself;
|
||||
* if |x|>1, return NaN with invalid signal.
|
||||
*
|
||||
* Function needed: sqrt
|
||||
*/
|
||||
|
||||
#include "fdlibm.h"
|
||||
|
||||
#ifdef __STDC__
|
||||
static const double
|
||||
#else
|
||||
static double
|
||||
#endif
|
||||
one= 1.00000000000000000000e+00, /* 0x3FF00000, 0x00000000 */
|
||||
pi = 3.14159265358979311600e+00, /* 0x400921FB, 0x54442D18 */
|
||||
pio2_hi = 1.57079632679489655800e+00, /* 0x3FF921FB, 0x54442D18 */
|
||||
pio2_lo = 6.12323399573676603587e-17, /* 0x3C91A626, 0x33145C07 */
|
||||
pS0 = 1.66666666666666657415e-01, /* 0x3FC55555, 0x55555555 */
|
||||
pS1 = -3.25565818622400915405e-01, /* 0xBFD4D612, 0x03EB6F7D */
|
||||
pS2 = 2.01212532134862925881e-01, /* 0x3FC9C155, 0x0E884455 */
|
||||
pS3 = -4.00555345006794114027e-02, /* 0xBFA48228, 0xB5688F3B */
|
||||
pS4 = 7.91534994289814532176e-04, /* 0x3F49EFE0, 0x7501B288 */
|
||||
pS5 = 3.47933107596021167570e-05, /* 0x3F023DE1, 0x0DFDF709 */
|
||||
qS1 = -2.40339491173441421878e+00, /* 0xC0033A27, 0x1C8A2D4B */
|
||||
qS2 = 2.02094576023350569471e+00, /* 0x40002AE5, 0x9C598AC8 */
|
||||
qS3 = -6.88283971605453293030e-01, /* 0xBFE6066C, 0x1B8D0159 */
|
||||
qS4 = 7.70381505559019352791e-02; /* 0x3FB3B8C5, 0xB12E9282 */
|
||||
|
||||
#ifdef __STDC__
|
||||
double __ieee754_acos(double x)
|
||||
#else
|
||||
double __ieee754_acos(x)
|
||||
double x;
|
||||
#endif
|
||||
{
|
||||
fd_twoints u;
|
||||
double df;
|
||||
double z,p,q,r,w,s,c;
|
||||
int hx,ix;
|
||||
u.d = x;
|
||||
hx = __HI(u);
|
||||
ix = hx&0x7fffffff;
|
||||
if(ix>=0x3ff00000) { /* |x| >= 1 */
|
||||
if(((ix-0x3ff00000)|__LO(u))==0) { /* |x|==1 */
|
||||
if(hx>0) return 0.0; /* acos(1) = 0 */
|
||||
else return pi+2.0*pio2_lo; /* acos(-1)= pi */
|
||||
}
|
||||
return (x-x)/(x-x); /* acos(|x|>1) is NaN */
|
||||
}
|
||||
if(ix<0x3fe00000) { /* |x| < 0.5 */
|
||||
if(ix<=0x3c600000) return pio2_hi+pio2_lo;/*if|x|<2**-57*/
|
||||
z = x*x;
|
||||
p = z*(pS0+z*(pS1+z*(pS2+z*(pS3+z*(pS4+z*pS5)))));
|
||||
q = one+z*(qS1+z*(qS2+z*(qS3+z*qS4)));
|
||||
r = p/q;
|
||||
return pio2_hi - (x - (pio2_lo-x*r));
|
||||
} else if (hx<0) { /* x < -0.5 */
|
||||
z = (one+x)*0.5;
|
||||
p = z*(pS0+z*(pS1+z*(pS2+z*(pS3+z*(pS4+z*pS5)))));
|
||||
q = one+z*(qS1+z*(qS2+z*(qS3+z*qS4)));
|
||||
s = fd_sqrt(z);
|
||||
r = p/q;
|
||||
w = r*s-pio2_lo;
|
||||
return pi - 2.0*(s+w);
|
||||
} else { /* x > 0.5 */
|
||||
z = (one-x)*0.5;
|
||||
s = fd_sqrt(z);
|
||||
u.d = s;
|
||||
__LO(u) = 0;
|
||||
df = u.d;
|
||||
c = (z-df*df)/(s+df);
|
||||
p = z*(pS0+z*(pS1+z*(pS2+z*(pS3+z*(pS4+z*pS5)))));
|
||||
q = one+z*(qS1+z*(qS2+z*(qS3+z*qS4)));
|
||||
r = p/q;
|
||||
w = r*s+c;
|
||||
return 2.0*(df+w);
|
||||
}
|
||||
}
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user