Compare commits

...
529 Commits
Author SHA1 Message Date
schetnikovich 845315eeb5 Simplified LIBSSH2 CMake listfile 2016-04-05 16:19:42 +03:00
schetnikovich 803306eea5 Default to gnu99 for both GCC and Clang 2016-04-05 14:58:51 +03:00
schetnikovich 94ef0d75d7 Modified gitignore and missed header in OpenSSL 2016-04-05 13:24:37 +03:00
schetnikovich 604d439d57 OpenSSL CMake listfile tweaks 2016-04-05 12:39:25 +03:00
schetnikovich d37f8c7bab OpenSSL 1.0.1e 2016-04-04 21:47:50 +03:00
schetnikovich c7ab94a5a5 Ignore SIGPIPE signal 2016-04-04 20:01:42 +03:00
schetnikovich a6428ce968 Use of LIBSSH2 error codes 2016-04-04 16:31:42 +03:00
schetnikovich 8dd0cd3050 Restructuring of SSH submodule. Updated to the latest version of LIBSSH2. 2016-04-04 15:53:12 +03:00
schetnikovich baede8d8bd SSH tunnel: Log functions moved to separate file II 2016-04-02 13:34:28 +03:00
schetnikovich 2328ec7b31 SSH tunnel: Log functions moved to separate file 2016-04-02 13:34:01 +03:00
schetnikovich 719df7b241 Error handling for the most important operations is restored.
1. First steps to support automatic reconnection for SSH tunnel
2. UI tweaks for Explorer tree items (handling of errors and empty children)
3. Correct handling of invalid mongo::DBClientCursor
4. Null semantic of value type EventError is restored. Was broken by reliance on emptiness of error message string, dah!
5. Error state for several messages is restored. Not for all messages, but still something :)
6. Errors produced by MongoWorker now contains exact error message, instead of constant text.
7. More strict error handling for SSH worker
2016-04-02 01:19:58 +03:00
schetnikovich dff7f0539a Preparation to handle reconnection automatically 2016-03-31 13:56:37 +03:00
schetnikovich f03cf048d8 Minor changes with whitespace characters in the code 2016-03-29 20:43:41 +03:00
schetnikovich 22ffc2ec15 Do not print batch size in the logs 2016-03-29 19:51:49 +03:00
schetnikovich 09a0edb39a Check for availability of "rc" files (this removes unnecessary warnings in logs) 2016-03-29 19:44:10 +03:00
schetnikovich a0a8a7a13e Cleanup of SSH worker thread when no more connected clients 2016-03-29 18:06:05 +03:00
schetnikovich 8f97c06408 Shift + Return when selecting connection in order to enable debug level logging for SSH submodule 2016-03-29 14:57:13 +03:00
schetnikovich af9f8fc6a9 Shift + Connect in order to enable debug level logging for SSH submodule
Added WARN log level
2016-03-29 14:36:38 +03:00
schetnikovich ef6feb2377 Log levels for SSH submodule (ERROR, INFO, DEBUG) 2016-03-28 20:57:22 +03:00
schetnikovich 4e5ffae80c Single log function for SSH submodule 2016-03-28 20:16:45 +03:00
schetnikovich 3597f438cd Handling of different types of sockets moved to separate functions 2016-03-28 19:47:15 +03:00
schetnikovich ad9cc86117 Cleanup of SSH tunnel artifacts: sessions, channels, sockets. 2016-03-28 16:34:25 +03:00
schetnikovich 6656494fda Prefix all global or public C identifiers with "rbm_" 2016-03-27 18:23:57 +03:00
schetnikovich 06ac7dd8f1 Global set of SSH channels replaced with separate channels per each worker thread 2016-03-26 11:57:26 +03:00
schetnikovich 76f4d19b42 Logging to Log panel from SSH tunnel worker 2016-03-25 16:17:25 +03:00
schetnikovich d64a1f704b Real-time logging from SSH Tunnel worker thread. 2016-03-25 12:40:14 +03:00
schetnikovich aa27148868 Detailed errors messages for all system calls when establishing SSH tunnel. 2016-03-24 20:40:12 +03:00
schetnikovich 58c42df669 Better error handling when new connection is made (for normal and via SSH tunnel) 2016-03-24 17:16:10 +03:00
schetnikovich 9c0761826b Automatically bind local SSH tunnel to the first available local port 2016-03-22 23:51:43 +03:00
schetnikovich 63f90dfeb3 SSH tunnel on hard-coded local port 2016-03-22 22:28:40 +03:00
schetnikovich 10b31ef2a9 Two-step connection skeleton (SSH tunnel, and then MongoDB connection) 2016-03-22 20:25:36 +03:00
schetnikovich bb3fd81c4d SSH tunnel worker connection and auth 2016-03-19 20:36:05 +03:00
schetnikovich 2cd6ed2928 SSH public key 2016-03-18 18:42:24 +03:00
schetnikovich fde191f6aa SSH tunnel worker sketch 2016-03-18 18:05:01 +03:00
schetnikovich 1c76852b9c Enable C99 support 2016-03-17 16:27:43 +03:00
schetnikovich 2491f417da Loading and saving of SSH settings 2016-03-17 14:43:18 +03:00
schetnikovich 443b8070f2 SSH tab and settings stub 2016-03-15 22:53:07 +03:00
schetnikovich bb51c1395b Separate SSH channels for different socket connections on the same port
* Additional major fix: restored error handling when connectivity is lost
2016-03-15 20:52:51 +03:00
schetnikovich 3e03cf3d88 Single SSH channel for all socket connections 2016-03-13 21:28:37 +03:00
schetnikovich d6a6bf9719 SSH connection, handshake and authentication routines 2016-03-13 17:43:58 +03:00
schetnikovich 3a2a9d1b7d SSH tunnel config 2016-03-12 20:28:59 +03:00
schetnikovich dda68ff53f Direct port forwarding skeleton 2016-03-11 18:26:45 +03:00
schetnikovich 0ef17c6ad7 Libssh2 compilation 2016-03-11 13:47:29 +03:00
schetnikovich ac58d23713 Libssh2 1.7.0 2016-03-10 23:13:25 +03:00
schetnikovich 5971972525 CHANGELOG updated 2016-03-08 13:58:28 +03:00
schetnikovich 4cc6662837 Merge branch 'master' of github.com:paralect/robomongo 2016-03-06 15:52:50 +03:00
schetnikovich 226cbf48d8 CMake print utils changes 2016-03-06 15:52:01 +03:00
schetnikovich 7d9909c247 #1048: Support for CMake 3.0 2016-03-06 15:50:26 +03:00
Dmitry Schetnikovich 649c096e70 Update BuildingMongoDB.md 2016-03-06 12:47:34 +03:00
Dmitry Schetnikovich ce02d5f5c8 Update BuildingRobomongo.md 2016-03-06 12:45:27 +03:00
Dmitry Schetnikovich 90c667011d Update BuildingMongoDB.md 2016-03-06 12:42:22 +03:00
Dmitry Schetnikovich 0622e85e27 Update BuildingMongoDB.md 2016-03-06 12:41:29 +03:00
Dmitry Schetnikovich 355f01f0a4 Update BuildingMongoDB.md 2016-03-06 12:36:59 +03:00
Dmitry Schetnikovich b0d6cf0842 Update BuildingMongoDB.md 2016-03-06 12:35:35 +03:00
Dmitry Schetnikovich 16b15be81b Update BuildingMongoDB.md 2016-03-06 12:30:43 +03:00
schetnikovich 2b7a8ca14e Version updated to RC7 2016-03-03 18:12:23 +03:00
Dmitry Schetnikovich c338813d1c Update BuildingRobomongoOnWindows.md 2016-03-03 17:48:00 +03:00
schetnikovich 2f38d5b00d #1017: Disable editing in View Mode. Button "Validate" is also now hidden in this mode. 2016-03-03 17:09:17 +03:00
schetnikovich 7c6738e32b Config for "clang-format" tool 2016-03-01 20:32:49 +03:00
schetnikovich 86bfeba68a #929: Show keyboard shortcuts for expand/collapse in context menu 2016-03-01 19:40:37 +03:00
schetnikovich a94aa81c07 #1045: Logs are now shown in the panel at the bottom 2016-02-29 20:50:51 +03:00
schetnikovich 080c1ed865 #1042: Double click on collection should not expand it 2016-02-29 16:49:05 +03:00
schetnikovich c6f13e347c Confirmation dialog for BSON editor when ESC is hit and content is modified
And also clone url in documentation is changed to HTTPS instead of SSH, to allow
allow unauthorized cloning.

# Please enter a commit message to explain why this merge is necessary,
# especially if it merges an updated upstream into a topic branch.
#
# Lines starting with '#' will be ignored, and an empty message aborts
# the commit.
2016-02-28 22:26:05 +03:00
schetnikovich 3cea361cc9 Merge of PR #1037 2016-02-28 22:16:31 +03:00
schetnikovich f6546fc336 Minor code cleanup 2016-02-28 22:08:35 +03:00
schetnikovich 8d12ab45c9 Mac way to "expand recursively" in a BSON subtree #929. Implemented by Anton Zering 2016-02-28 21:46:39 +03:00
schetnikovich 7dfd9184b7 Fix for broken keyboard shortcut for single document #1039 2016-02-28 21:09:10 +03:00
Anton Zering 0977bc00e3 #929: adds shortcut to expand nodes recursively 2016-02-25 01:13:31 +01:00
Anton Zering 2ea847ce0b #1039: fixes deletion of single documents with shortcut 2016-02-25 00:51:05 +01:00
Anton Zering fb2b5e0487 #1017: document editor ask to save changes when closing the window 2016-02-23 23:56:06 +01:00
Anton Zering cce30bb55b Changed clone url to use HTTPS instead of SSH
Use HTTPS instead of SSH to allow unauthorized cloning
2016-02-23 22:56:41 +01:00
Dmitry Schetnikovich 98af4fc747 CHANGELOG updated 2016-02-13 16:30:59 +03:00
schetnikovich 2c04edb1b3 List of collections is loading much faster now 2016-02-13 16:19:51 +03:00
Dmitry Schetnikovich e4500e0c5c Generate ZIP archives for Windows 2016-02-13 12:56:48 +03:00
Dmitry Schetnikovich 820c4a86f0 Fix for compilation error under Windows 2016-02-13 12:52:49 +03:00
Dmitry Schetnikovich d6253ca194 Merge pull request #1018 from CaptainPatate/CaptainPatate/fix-typo
Fix typo
2016-02-12 00:26:19 +03:00
schetnikovich 33e27917ee Version RC6 2016-02-11 15:20:06 +03:00
schetnikovich cea04368a9 Support for IPv6 addresses with and without square brackets 2016-02-11 15:19:16 +03:00
schetnikovich fe9eed7322 Removed use of monospaced font in Auth tab 2016-02-10 20:24:26 +03:00
Dmitry Schetnikovich 33304e2e7a README updated 2016-02-10 20:17:43 +03:00
schetnikovich 4cd51a7de6 IPv6 support 2016-02-10 20:16:22 +03:00
Amaury Gauthier 5ffd65b1a2 Fix typo 2016-02-09 15:18:04 +01:00
schetnikovich 82b96f4f63 Merge branch 'master' of github.com:paralect/robomongo 2016-02-06 19:00:45 +03:00
schetnikovich e0ea15adb9 Ad-free Robomongo 2016-02-06 19:00:29 +03:00
Dmitry Schetnikovich 209ce0c0a9 README updated 2016-02-03 14:34:01 +03:00
Dmitry Schetnikovich 620488c318 README updated 2016-02-03 14:31:27 +03:00
schetnikovich a270926397 CHANGELOG updated 2016-02-01 23:08:35 +03:00
schetnikovich 8c830b6f1a Robomongo RC4 2016-02-01 20:50:45 +03:00
schetnikovich 33d58189c4 All operations with MongoDB now over DBClientBase, instead of DBClientConnection 2016-02-01 18:28:21 +03:00
schetnikovich 5d8370a970 Support for SCRAM-SHA-1 and MONGODB-CR authentication mechanisms.
1. Ability to select auth mechanisms for each connection (defaults to SCRAM-SHA-1)
2. Diagnostic Dialog also now uses required mechanisms.
2016-02-01 15:17:10 +03:00
schetnikovich fb3d37e641 Message box with description of error when deleting documents. 2016-01-31 19:36:53 +03:00
schetnikovich b27f747ff2 Handling of errors when inserting/updating/removing documents. 2016-01-31 18:47:50 +03:00
schetnikovich 2854783aeb Always allow to read from slaves. 2016-01-31 17:32:28 +03:00
Dmitry Schetnikovich 4b8aa3deaf Shortcuts now will be created on Windows (on desktop and start menu)
1. A bit simplified syntax is used for NSIS commands
2. All Robomongo CMake files start from "Robomongo" (except "find" packages)
3. Clean uninstallation under Windows (only config file is not deleted)
2016-01-30 20:10:09 +03:00
schetnikovich f5397b7c68 CHANGELOG updated 2016-01-29 21:19:45 +03:00
schetnikovich 047620492c Typo fixed 2016-01-29 16:20:18 +03:00
schetnikovich bf51f5d6c9 Gray text color for hey message 2016-01-29 12:47:37 +03:00
schetnikovich d7f27e16fe Hey message added for the time of campaign. 2016-01-29 07:16:51 +03:00
schetnikovich cfb30c69c0 Merge of BSON utils 2016-01-29 05:00:13 +03:00
schetnikovich 8ed0335b7b Use of std::numeric_limits<double>::digits10 to get max float-point precision
Tests returned back.
2016-01-29 04:58:30 +03:00
Dmitry Schetnikovich 313179dfbe Temporary fix for compilation under Windows 2016-01-28 21:42:52 +03:00
schetnikovich 97503f2e81 Version RC3 2016-01-28 21:15:25 +03:00
schetnikovich 156bda2600 NumberDecimal write protection. 2016-01-28 20:59:48 +03:00
schetnikovich 6a5ad25bde Use of shortest representation for BSON double types.
#870, #831, #921, #842
2016-01-28 20:33:46 +03:00
schetnikovich 6d06a3c83c Cleanup of unused code 2016-01-28 19:50:25 +03:00
schetnikovich 76cb03b523 Correct handling and display of top-most JS/BSON arrays in tree and text modes. 2016-01-27 19:31:43 +03:00
schetnikovich 6a2f8c655e Built-in ISO date parser replaced with ptimeutil 2016-01-25 21:39:32 +03:00
schetnikovich 4f3bf50acd BSON parsing with support for ISODate and UUIDs.
1. Validate Json functionality is back
2. Use of MongoDB built-in parser for ISO Date format
3. Use of MongoDB built-in parser for NumberLong
2016-01-25 21:06:51 +03:00
Dmitry Schetnikovich 84c1679e14 Fix for Windows install directory 2016-01-25 18:39:08 +03:00
schetnikovich 5ce457b6f6 Use versioned install directory for not stable releases under Windows 2016-01-25 18:24:51 +03:00
schetnikovich 071d79b7f7 Uniformed package name for all platforms.
1. All letters are lowercase
2. Includes platform architecture in the name
2016-01-25 17:46:55 +03:00
Dmitry Schetnikovich c4ccae3ef8 Packaging for Windows
1. NSIS package is now generated for Windows
2. Images for NSIS installer added
3. DESCRIPTION file copied to installation package
4. Icon updated to have smaller resolutions (20, 24, 40 and 48)
2016-01-25 17:23:52 +03:00
Dmitry Schetnikovich 3e67fa00d4 Packaging of runtime libraries for Windows 2016-01-24 20:04:54 +03:00
Dmitry Schetnikovich e34ebdf0de Config for 0.9.x versions now namespaced in .config/robomongo/0.9 folder. Loading of .mongorc.js is turned off by default 2016-01-24 19:25:45 +03:00
Dmitry Schetnikovich c6bdd3a455 Multiresolution ICO file for Windows 2016-01-24 18:55:20 +03:00
Dmitry Schetnikovich 81f22b68d7 QAtomicInteger<int> instead of QAtomicInteger<_Bool or bool> 2016-01-24 16:49:18 +03:00
Dmitry Schetnikovich 888084b19b And now we are forced to use int instead of BOOL, because on Unix BOOL doesn't defined and bool cannot be used on Windows 2016-01-24 16:47:16 +03:00
Dmitry Schetnikovich e2ec2a2f0d Forced to use BOOL instead of bool, because on Windows –QAtomicInteger with bool template arg doesn't compile 2016-01-24 16:37:31 +03:00
schetnikovich e80245ba15 Bug fixed which made MongoWorker shutdown unsafe and incorrect. Proposed and implemented by Patrick Horlebein. 2016-01-24 16:22:02 +03:00
schetnikovich 3ef94811eb Migration notes updated 2016-01-24 15:13:56 +03:00
schetnikovich d78ff306e4 Removed notion about v0.9 branch in docs (which is merged with master) 2016-01-24 14:55:18 +03:00
Dmitry Schetnikovich 06285eb556 Merge pull request #996 from paralect/v0.9
Merge with v0.9 branch
2016-01-24 14:47:50 +03:00
schetnikovich 0a4378b9fc Always Use QProxyStyle (thanks to Patrick Allaert) 2016-01-24 14:33:50 +03:00
Dmitry Schetnikovich 8472201a36 Merge pull request #999 from alexbevi/patch-1
Sort system.js functions by name (_id)
2016-01-24 14:21:23 +03:00
Dmitry Schetnikovich 554d3f4950 Parallel build enabled for VS 2016-01-24 14:09:57 +03:00
Dmitry Schetnikovich 300713d1ad Temporary empty environment used when running under Windows 2016-01-23 21:57:17 +03:00
Dmitry Schetnikovich 0c06122b36 Documentation for building Robomongo under Windows updated 2016-01-23 21:47:13 +03:00
Dmitry Schetnikovich 08bf485229 Note to documentation added about use of SSH agent in Git Bash. 2016-01-23 21:39:33 +03:00
Dmitry Schetnikovich 0b3bc255e6 Fix for install.bat under Windows 2016-01-23 21:31:53 +03:00
Dmitry Schetnikovich c8f0acf144 MongoDB debug objects and support for debug builds on Windows. 2016-01-23 20:15:35 +03:00
Dmitry Schetnikovich 6152d64d6a Installation batch frontend for Windows 2016-01-23 19:42:16 +03:00
Dmitry Schetnikovich 916daa76c9 Windows build configuration
1. Platform integration plugins are now installed for Windows
2. Installation of Qt libraries for Windows
3. Warnings that are turned off in MongoDB code,  also turned when compiling Robomongo
2016-01-23 19:40:56 +03:00
Dmitry Schetnikovich 9636f5f0f5 Windows standard libraries 2016-01-22 22:03:57 +03:00
Dmitry Schetnikovich bda503d3c9 Compilation of QScintilla and QJson on Windows. 2016-01-22 21:30:15 +03:00
Dmitry Schetnikovich d39a79b121 Merge branch 'v0.9' of github.com:paralect/robomongo into v0.9 2016-01-22 20:09:00 +03:00
Dmitry Schetnikovich 68cd7ecc70 Towards Robomongo for Windows
1. Build objects for MongoDB in release mode
2. Shell frontend for common build operations
3. Support for basic packaging in installation phase
2016-01-22 20:07:54 +03:00
schetnikovich 3e82292cfc Prerequisites documentation for building Robomongo for Windows platform 2016-01-22 17:23:19 +03:00
schetnikovich f825309d6e Documentation stab for Building Robomongo on Windows 2016-01-21 21:38:12 +03:00
schetnikovich 852c7041d2 Safer operation for directory removing 2016-01-21 14:50:22 +03:00
schetnikovich a9e24caf67 Documentation updated for building Robomongo and MongoDB fork 2016-01-21 14:31:04 +03:00
schetnikovich f006547b37 Support for Mac SDK 10.9 2016-01-21 13:55:32 +03:00
schetnikovich fb796ce1c4 Style changes for Mac platform 2016-01-20 20:43:27 +03:00
schetnikovich 20301dd0dd Qt "qt.conf" file used for installation phase and some build code cleanup made. 2016-01-20 16:54:18 +03:00
schetnikovich 8178aa91d2 RuntimeDependencies.md troubleshooting guide 2016-01-20 13:18:44 +03:00
schetnikovich 47f963f7dc Getting rid of "robomongo.sh" on Linux.
1. RPATH is now used for both Linux and Mac
2. File "qt.conf" now embedded to binary for all platforms
2016-01-19 21:44:26 +03:00
schetnikovich dade11a029 Documentation stub for BuildingRobomongo.md 2016-01-19 20:09:56 +03:00
schetnikovich 4225dda194 Fix for 'bin/run' utility when run under Mac 2016-01-19 19:59:29 +03:00
schetnikovich e1fdff1db7 DMG .DS_Store file 2016-01-19 19:13:12 +03:00
schetnikovich 369a79b110 Creation of Application Bundle for Mac with all dependencies 2016-01-19 17:35:53 +03:00
schetnikovich a692d66106 Installation of frameworks for Mac 2016-01-18 20:48:08 +03:00
schetnikovich 5957ad03ab Readme for icns regeneration 2016-01-18 17:48:58 +03:00
schetnikovich 7dbba28a18 Logo in icns format added 2016-01-18 17:46:09 +03:00
schetnikovich 0c260945b1 Raw iconset for new logo 2016-01-18 17:41:40 +03:00
Alex Bevilacqua 9aaf94fb06 Sort system.js functions by name (_id) 2016-01-17 20:27:18 -05:00
schetnikovich 2ffc14a778 Creationg of databases fixed for MongoDB 3.x 2016-01-17 19:46:00 +03:00
schetnikovich 8910b2f0cb Default settings restored 2016-01-17 19:02:30 +03:00
schetnikovich e2323967e8 Correct background color for TabBar on Linux 2016-01-17 18:43:34 +03:00
schetnikovich d6fdffd59b First steps to style Tab bar for Mac 2016-01-17 18:28:37 +03:00
schetnikovich fd08b27857 Window position for main window and JSON editor now relative to screen size. 2016-01-17 16:31:23 +03:00
schetnikovich a6babd6e0e Bash helper script to run application 2016-01-17 14:38:02 +03:00
schetnikovich 7f371314ce List of MongoDB debug objects 2016-01-16 21:34:41 +03:00
schetnikovich 75e82917aa Compilation for Mac OS 2016-01-16 20:44:35 +03:00
schetnikovich 1befc7e7c5 Mac OS dependencies 2016-01-16 19:27:10 +03:00
schetnikovich ce86901784 Missed DBus library for Linux 2016-01-16 14:38:16 +03:00
schetnikovich 1e40dfa2c0 Several tweaks for building and packaging
1. Linux specific dependencies added
2. Current git commit hash added to package file name
3. Now we use known target Qt5::Core to find Qt lib folder
2016-01-16 14:09:58 +03:00
schetnikovich aa12fbe1c2 Fix installation and packaging for Linux 2016-01-16 13:34:08 +03:00
schetnikovich 510e699bbe Bash frontend intro documentation 2016-01-15 20:48:01 +03:00
schetnikovich 5956997e94 Bash frontends for CMake on Unix-like OSes
1. bin/configure to run CMake configuration
2. bin/build to run CMake build generator
3. bin/install to run CMake 'install/strip' target
4. bin/pack to run CMake 'package" target
5. bin/clean to completely clean 'build' folder
2016-01-15 20:42:13 +03:00
schetnikovich 6cd40d17fe TGZ package creation for Linux 2016-01-15 18:27:30 +03:00
schetnikovich e48fae561b Strip debug info when creating package 2016-01-15 17:54:58 +03:00
schetnikovich b814924352 Do not compile unused lexers for Scintilla (only CPP and JS are left) 2016-01-15 17:35:56 +03:00
schetnikovich dc674d1991 Identified set of Scintilla lexers that are not needed for Robomongo. 2016-01-15 17:15:46 +03:00
schetnikovich f3ecf42f9f PackageRobomongo.cmake added 2016-01-15 17:05:02 +03:00
schetnikovich c5f6f68225 Use relative paths in DESTINATION param of install() command. 2016-01-15 17:00:57 +03:00
schetnikovich 7aaaf6abb6 Several build tweaks for Linux (tested both for release and debug).
1. CMAKE_POSITION_INDEPENDENT_CODE turned on
2. THREADS_PREFER_PTHREADS_FLAT turned on as recommended in module documentation
3. Configuration summary moved to separate file
4. Cleanup of used CXX flags (only -fPIC and -std=c++11 are used for now)
5. Usage of Threads::Threads target instead of explicit link to "pthreads"
2016-01-15 15:35:48 +03:00
schetnikovich 63c942bd20 Installation of Qt plugins 2016-01-15 06:18:58 +03:00
schetnikovich ebbef08258 Robomongo configuration summary updated 2016-01-14 20:30:01 +03:00
schetnikovich 1aff489efe Installation of wrapper script and required ICU libraries 2016-01-14 20:26:09 +03:00
schetnikovich 83e088870e Qt5 libraries copied: Core, Gui and Widgets. 2016-01-14 19:23:10 +03:00
schetnikovich 173a4e7912 Install scripts for Linux. Qt5 libraries copied for distribution. 2016-01-14 19:22:28 +03:00
schetnikovich 9ba567752a JIT enabled (and new icon added :) 2016-01-13 19:48:27 +03:00
schetnikovich f0f0d448ae MongoDB ScriptEngine seems no longer needs to be cleaned 2016-01-13 19:11:14 +03:00
schetnikovich 63f63c4142 Diagnostic output removed from dbshell 2016-01-13 03:18:41 +03:00
schetnikovich 0a135a08b0 CMAKE_INCLUDE_CURRENT_DIR turned off 2016-01-13 03:10:01 +03:00
schetnikovich 802b15228c Several changes
1. Added missed BUILD_MINSIZEREL check
2. Cleanup of robomongo/CMakeLists.txt
3. Removed OS_WIN, OS_MAC and OS_LINUX definitions
4. Q_OBJECT added back to JSLexer
5. Manual moc for QScintilla (automatic doesn't work)
2016-01-12 21:24:49 +03:00
schetnikovich 2459a92a23 Switched to object linking mode with MongoDB instead of static libs.
1. List of objects now read from files
1. Release builds now supported for Linux (and by default)
2. Process of creation of object files is documented
3. In configuration summary we now show Build Type.
2016-01-12 18:52:47 +03:00
schetnikovich 34fc597cc8 FindMongoDB.cmake changes 2016-01-12 16:12:41 +03:00
schetnikovich 13483d3ea2 DefineDefaults.cmake with platform and build type checks 2016-01-11 20:15:14 +03:00
schetnikovich 2776da3660 Formating fix 2016-01-11 19:35:42 +03:00
schetnikovich d819ab361a Default CMAKE_BUILD_TYPE is RelWithDebInfo 2016-01-11 19:33:59 +03:00
schetnikovich 85cbe8e9cd CMake cache cleanuped. All unnecessary cache entries removed 2016-01-11 19:04:25 +03:00
schetnikovich 519fea6f66 FindMongoDB.cmake: INTERFACE IMPORTED instead of STATIC IMPORTED 2016-01-11 15:44:25 +03:00
schetnikovich f35aba90ab Minor changes in file names 2016-01-10 20:30:41 +03:00
schetnikovich 567c2cc2ad FindMongoDB.cmake module now publishes IMPORTED target with all required include dirs, libs and definitions 2016-01-10 20:22:59 +03:00
schetnikovich 47576ae8c0 FindMongoDB.cmake module integrated with Robomongo 2016-01-10 19:14:20 +03:00
schetnikovich b25b33a3a1 CMake target interface is used, instead of DIRECTORY scoped definitions and other compile options 2016-01-10 18:11:23 +03:00
schetnikovich 745bc86275 Readme updated 2016-01-10 17:22:12 +03:00
schetnikovich 128ef1e6fc QScintilla sources moved to third-party/qscintilla/sources folder. README file added 2016-01-10 17:09:48 +03:00
schetnikovich b550bb287a QJson sources moved to /third-party/qjson/sources folder. README file added 2016-01-10 16:54:22 +03:00
schetnikovich 0beb3c886a CMake scripts for QScintilla 2016-01-10 16:10:04 +03:00
schetnikovich b472e90849 CMake script for QJson 2016-01-10 15:41:02 +03:00
schetnikovich 16e09e7e82 Compilation and linking on Linux against MongoDB 3.2
1. Cleanup of CMake (in progress)
  2. FindModule for MongoDB (in progress)
2016-01-09 20:03:55 +03:00
schetnikovich 0eafa778b0 Tada! Robomongo embeds MongoDB 3.2 shell and runs. But for now it cannot connect to MongoDB :). This should be investigated in next days 2016-01-06 22:13:27 +03:00
schetnikovich f8f6f08de9 LogWidget now linked successfully 2016-01-06 21:11:57 +03:00
schetnikovich 226ebe0c75 Files in gui folders dialogs, editors, utils and widgets are compiled and linked 2016-01-06 20:59:45 +03:00
schetnikovich 8c59a8bebb New set of compiled and linked units 2016-01-06 20:48:44 +03:00
schetnikovich 08c72911c5 More compiled and linked units 2016-01-06 20:42:26 +03:00
schetnikovich 71ba8cf9e5 Logbook of migration notes 2016-01-06 20:19:57 +03:00
schetnikovich 81c27fe5dc Successfully linked against upgraded QScintilla2 2016-01-06 20:05:24 +03:00
schetnikovich a04773ccf3 Scintilla upgraded from 3.3.6 to 3.5.4. QScintilla wrapper upgraded from 2.8.4 to 2.9.1 2016-01-06 19:51:40 +03:00
schetnikovich 7273f790d6 Two additional files compiled and linked successfully 2016-01-06 19:47:39 +03:00
schetnikovich b69647d881 Third isolated scope of compilation units 2016-01-06 19:33:42 +03:00
schetnikovich 7226577fcb New isolated set of compilation units compiled and linked successfully 2016-01-06 19:11:23 +03:00
schetnikovich f323fa8b88 Compilation of isolated set of files. Log severity now uses new mongo::logger::LogSeverity() class 2016-01-05 20:31:12 +03:00
schetnikovich 875094a359 Linking with roboshell 2016-01-05 07:19:28 +03:00
schetnikovich 38e7d29a8f BsonUtils and Logger 2016-01-05 02:33:42 +03:00
schetnikovich c716ea4b30 StdUtils, QtUtils and Logger 2016-01-04 21:13:08 +03:00
schetnikovich a2c398540b CMake utils 2016-01-04 17:30:33 +03:00
schetnikovich 4d821f1261 Shell code moved to trash 2016-01-04 14:14:39 +03:00
schetnikovich baaac575c1 Radical project cleanup 2016-01-04 14:07:46 +03:00
schetnikovich ba78c201b8 Ignore vim's *.swp files 2016-01-04 13:31:16 +03:00
schetnikovich 0ec8d76220 Upgraded to newer version of QJson 2016-01-03 20:39:31 +03:00
schetnikovich 968a83c380 Ignore .idea files 2015-12-28 15:25:49 +03:00
Dmitry Schetnikovich b6a2db169e Update README.md 2015-12-11 18:28:34 +03:00
Dmitry Schetnikovich 4e615fbce4 Update README.md 2015-12-11 18:12:55 +03:00
Dmitry Schetnikovich 57251327ae Update README.md 2015-12-10 13:13:34 +03:00
Dmitry Schetnikovich 9a0becd470 Merge pull request #986 from myaskevich/patch-1
Update README.md
2015-12-10 13:11:55 +03:00
Maxim Yaskevich 974cc4b561 Update README.md
Fix Magic Backlog link
2015-12-10 12:48:17 +03:00
Andrew Orsich 165f23753f updated readme. features in mind :) feature -> future 2015-12-10 11:05:58 +03:00
Andrew Orsich 8ac6426d91 Updated readme, added notes about campaign. 2015-12-10 10:39:15 +03:00
Stephen Steneker 97c1cf55c8 Fix #831: Text mode number values displaying in scientific notation 2015-04-15 21:30:00 +10:00
Stephen Steneker c43ea0e690 Merge pull request #844 from hdeheer/patch-1
Fix missing ; for point size in settingsManager
2015-04-15 21:26:39 +10:00
Hubert 09d84aedb3 Fix missing ; 2015-04-15 13:01:20 +02:00
Stephen Steneker 40585da9a4 Merge pull request #803 from CraigKelly/bug-649
Allow font specification to work around issue #649
2015-04-15 16:43:50 +10:00
Stephen Steneker 5abd6029d5 Merge pull request #836 from candronikos/fix-CMAKE-INSTALL_PREFIX
Fixed CMAKE_INSTALL_PREFIX typo
2015-04-15 10:46:16 +10:00
Christopher Andronikos d766cf5c56 Fixed CMAKE_INSTALL_PREFIX now has effect 2015-04-04 17:07:59 +11:00
Stephen Steneker 91246d6c26 Ignore Qt5 Creator's user files 2015-03-20 17:12:28 +11:00
Stephen Steneker 7f54a7ec2c Fix #804: Some keys not working in 0.8.5 (Windows remote to Ubuntu
running xrdp)
2015-03-19 21:00:58 +11:00
Stephen Steneker f96ec0a1c2 Add a Support section and link to Gitter chat 2015-03-19 20:59:33 +11:00
Stephen Steneker e3af2978e1 Set dev version to 0.8.6 for bugfix release 2015-03-19 17:02:46 +11:00
Stephen Steneker 3298c06577 Fix #806: Respect setting of MACOSX_DEPLOYMENT_TARGET for min OS X SDK 2015-03-19 17:00:00 +11:00
Stephen Steneker 6a06ed57d2 Update README with current & upcoming release info and more ways to
contribute.
2015-03-18 05:49:38 +11:00
Craig Kelly 1204c5ddca Add text font family and point size to SettingsManager and honor in
GuiRegistry. This allows Linux users experiencing issue #649 to use a
different font (since the default monospace font appears to be giving Qt5
fits on some systems). It is also the first half of implementing #645
2015-03-16 17:30:13 -05:00
Stephen Steneker 28deda2425 Merge pull request #785 from rskvazh/master
Fix #475 wrong type for field (count) 1 != 16
2015-03-15 13:07:45 +11:00
Stephen Steneker 5446ecf43e Bump release version & copyright for 0.9.0dev 2015-03-15 13:06:39 +11:00
Stephen Steneker 3170d5dec1 Remove unused Circle icons 2015-03-15 11:02:20 +11:00
Stephen Steneker 092ba3e06d Remove unused bson-old icons 2015-03-15 11:00:23 +11:00
Stephen Steneker deaef6ca2b Fix #796: Incorrect description for RPM package 2015-03-14 14:22:55 +11:00
Stephen Steneker e2678c177d Fix #783: Create 0.8.5 64-bit RPM package
- update deps to install RPM on Centos 6.6 minimal w/ Qt 5.3.2
2015-03-14 05:30:27 +11:00
Stephen Steneker 9b1e65b95a Fix #787: 0.8.5 .deb package missing Qt xcb plugin
- remove hardcoded (and outdated deps) and re-enable auto-detection
2015-03-12 20:54:36 +11:00
Stephen Steneker 3b5d96f71f Merge branch 'master' of github.com:paralect/robomongo 2015-03-12 00:22:11 +11:00
Stephen Steneker eb54fbeb68 Remove copy-pasta backup of cmake files 2015-03-12 00:21:28 +11:00
Stephen Steneker aa2e887a55 Fix #733: make fails while building ExternalLexer 2015-03-12 00:16:15 +11:00
Stephen Steneker 64711a7056 Suppress deprecation warnings in third_party libs 2015-03-12 00:11:20 +11:00
Stephen Steneker 7b3550d474 Suppress C++11 literal-suffix warnings 2015-03-12 00:09:25 +11:00
Stephen Steneker 7bfe5b4dbb Fix #425: Build fails: error: 'uint64_t' does not name a type
- also suppress spurious warnings in gcc 4.8.x
2015-03-11 23:16:17 +11:00
Stephen Steneker 3f82453a64 Add Linux ICU dependencies for Qt 5.3 2015-03-11 22:55:25 +11:00
Stephen Steneker 1aefb681f9 Make cmake 3.0 policy checks conditional 2015-03-11 22:51:34 +11:00
Roman Skvazh 025295a330 Remove unnecessary include 2015-03-11 11:54:11 +03:00
Roman Skvazh d0980f215a Fix #475 wrong type for field (count) 1 != 16 2015-03-11 11:45:32 +03:00
Stephen Steneker 77e065082d Relax cmake version requirement since Ubuntu 14.04 LTS is still 2.8.12 2015-03-11 14:07:35 +11:00
Stephen Steneker c9db235664 FindOpenSSL.cmake fails to find new version (1.0.2) of OpenSSL 2015-03-11 09:11:15 +11:00
Stephen Steneker 5ea5adeb55 Update new default win32 policies for cmake 3.0 2015-03-11 08:54:57 +11:00
Stephen Steneker 24feab23a0 Update ICU libs for Qt 5.3.x on Win32 2015-03-11 08:45:48 +11:00
Stephen Steneker 183f1cdeca Typo: s/Deployng/Deploying/ 2015-03-10 21:32:06 +11:00
Stephen Steneker 84d76ac775 Fix #743: build/link error on OS X release build 2015-03-10 10:15:58 +11:00
Stephen Steneker 6d2099852b Add release date for 0.8.5 :) 2015-03-10 10:14:56 +11:00
Stephen Steneker c0739cf1ab Ignore debug/release build dirs 2015-03-10 09:53:24 +11:00
Stephen Steneker 4738ad7f56 Fix #728 .. typo in CMakelists 2015-01-05 14:33:26 +11:00
Stephen Steneker 2d5f01af29 Correct case for LexLaTeX.cpp 2015-01-01 01:08:09 +11:00
Stephen Steneker aef5cb8a2c Fix #726 (Update Robomongo icon) with updated images thanks to @anknetau 2014-12-30 23:51:30 +11:00
Stephen Steneker fd6033e1d4 Fix #726 (Update Robomongo icon) with updated images thanks to @anknetau 2014-12-30 23:50:08 +11:00
Stephen Steneker e98e8e90c4 Disable broken "Copy Collection to Database" misfeature (#398) 2014-12-30 16:16:49 +11:00
Stephen Steneker 5e5a87f0f9 Disable "Copy collection to database"; per issue #398 current
implementation is highly problematic
2014-12-30 16:08:53 +11:00
Stephen Steneker 0902e0c557 Remove RC patch version 2014-12-30 15:51:22 +11:00
Stephen Steneker 64a8244552 Merged PR#724 for retina text display 2014-12-30 15:46:56 +11:00
Stephen Steneker 9394e181c9 Merge pull request #724 from m--stein/master
Fix for Retina Display on Mac #248
2014-12-30 15:03:06 +11:00
Michael Steinacher 5c3bd1dc5a #248 updated QScintilla to 2.4.8 for retina display support 2014-12-29 00:23:52 +01:00
Michael Steinacher a6b6c2b57b #248 Fix Info.plist for Retina support 2014-12-21 13:26:53 +01:00
Michael Steinacher 708bc48823 #248 Fix Info.plist for Retina support 2014-12-21 13:26:22 +01:00
Stephen Steneker 4a1a938094 Merge branch 'master' of github.com:paralect/robomongo 2014-11-15 15:47:43 +11:00
Stephen Steneker 3d060d7bdf W00t! New app icon designed by Andres Kievsky (@anknetau) 2014-11-15 15:46:26 +11:00
Stephen Steneker e308b24d2e Merge pull request #693 from anknetau/master
Added new app icon in a variety of png and iDraw formats
2014-11-15 15:45:39 +11:00
Stephen Steneker a47343ff0a Set VERSION policy for cmake 3.0+ (CMP0048) 2014-11-15 15:42:12 +11:00
Stephen Steneker ac76b6411d Bump 0.8.5rc0 2014-11-15 15:26:01 +11:00
Stephen Steneker 843086634d Note contribution for PR #684 2014-11-15 15:12:20 +11:00
Stephen Steneker 0b2eb2d930 Merge pull request #684 from volans-/master
CreateUserDialog.cpp: fixed typo in warning message
2014-11-15 15:09:43 +11:00
Andres Kievsky ac9d26900b Added app icon in a variety of png and iDraw formats 2014-11-15 08:21:57 +11:00
volans- a7240d523f CreateUserDialog.cpp: fixed typo in warning message 2014-10-30 19:38:10 -07:00
Stephen Steneker f6e5e20cdb Add missing issue to changelog 2014-10-21 06:44:38 +11:00
Stephen Steneker 5eeff07d8c Changelog for 0.8.5 2014-10-21 00:19:45 +11:00
Stephen Steneker db7d0f7578 Merge pull request #637 from stennie/issue-636
Issue #636: Log errors if can't create settings path or write to config file
2014-08-14 08:54:25 +10:00
Stephen Steneker f5fad8f51b Issue #636: Log errors if can't create settings path or write to config file 2014-08-14 06:33:30 +10:00
Stephen Steneker 1237693762 Merge pull request #633 from stennie/issue-468
Document OS X editing shortcuts for begin/end of line/text
2014-08-11 11:04:28 +10:00
Stephen Steneker 6be1ad5fdf Add undocumented OS X editing shortcuts for begin/end of line/text
(mentioned in #468)
2014-08-11 11:01:49 +10:00
Stephen Steneker 35f7fd9df3 Merge pull request #632 from stennie/issue-631
Fix #631: "Duplicate Query In New Tab"
2014-08-10 08:19:01 +10:00
Stephen Steneker 83e722a99b Fix #631: "Duplicate Query In New Tab"
- add keyboard shortcut: Ctrl/Cmd+Shift+T
 - add to Window menu
2014-08-10 08:16:41 +10:00
Stephen Steneker bd5f8dc5f7 Merge pull request #629 from stennie/issue-455
Fix #455: Show execution time for operations that don't return results
2014-08-08 00:23:26 +10:00
Stephen Steneker 6dcd6f1665 Fix #455: Show execution time for operations that don't return results 2014-08-08 00:22:35 +10:00
Stephen Steneker a7ee61b586 Merge pull request #628 from stennie/issue-622
Fix #622: Type of Double changed to Int32 on save document
2014-08-07 22:05:29 +10:00
Stephen Steneker fbddb83cc7 Fix #622: Type of Double changed to Int32 on save document 2014-08-07 22:03:35 +10:00
Stephen Steneker 7d3bd637a9 Merge pull request #604 from VBelozyorov/issue-47
Include connection name in TopStatusBar
2014-06-22 11:39:07 -04:00
Vladimir Belozyorov fee5e5d027 Unused TopStatusBar::setCurrentConnection removed 2014-06-19 23:02:21 +04:00
Vladimir Belozyorov 585fe6afd1 Connection name in TopStatusBar 2014-06-19 00:14:54 +04:00
Stephen Steneker 183e9cfb09 Merge pull request #578 from gavruk/autocompldisable
Ability to disable autocompletion (#512)
2014-06-18 12:05:11 -07:00
Sergey Gavruk 2a32c4b828 Ability to disable autocompletion (#512) 2014-06-18 20:57:10 +03:00
Stephen Steneker e89ed86dae Merge pull request #595 from VBelozyorov/issue-457
Changes in toolbars visibility are saved in config file
2014-06-17 17:18:06 +10:00
Stephen Steneker 01581751b1 Merge pull request #591 from VBelozyorov/issue-384
Expand/collapse multiple selections
2014-06-17 17:15:15 +10:00
Vladimir Belozyorov 3cd29c0fbc Text in tooltips are changed in accordance to key shortcuts 2014-06-17 17:00:46 +10:00
Vladimir Belozyorov 1c5382af9e Expand/Collapse Recursively work not only for entire documents 2014-06-16 21:33:54 +04:00
Vladimir Belozyorov 33616550e8 Selected index doesn't pops up to the super-parent if only one item selected in BsonTreeView 2014-06-16 21:30:52 +04:00
Vladimir Belozyorov 344d7d0bf2 Merge branch 'master' of https://github.com/paralect/robomongo into issue-384 2014-06-16 20:16:16 +04:00
Vladimir Belozyorov 977270bf3c Merge branch 'master' of https://github.com/paralect/robomongo into issue-457
Conflicts:
	src/robomongo/core/settings/SettingsManager.cpp
2014-06-16 19:57:48 +04:00
Kanstantsin Kamkou 0dcd717a1b limit and offest sizes are increased 2014-06-16 15:11:13 +10:00
Stephen Steneker e4a91b2383 Merge pull request #593 from VBelozyorov/issue-514
Option to disable selected code autoexecution when opening a new tab
2014-06-16 07:10:09 +10:00
Stephen Steneker 137b8598e2 Merge pull request #596 from VBelozyorov/logs-time-format
Include full date/time for log entries
2014-06-16 07:03:47 +10:00
Vladimir Belozyorov dee472f026 Toolbars names changed 2014-06-15 13:08:58 +04:00
Vladimir Belozyorov 0b2edf612c Submenu for toolbars visibility management.
Using enable/disable instead of visible/invisible for exec toolbar and orientation action
2014-06-15 12:59:49 +04:00
Vladimir Belozyorov e234418f51 Date and hours leading zero 2014-06-15 12:46:01 +04:00
Vladimir Belozyorov abc698d32e Changing the toolbar visibility by program logic mustn't cause to config changing 2014-06-15 00:20:36 +04:00
Stephen Steneker c2a4cfeefc Merge pull request #592 from VBelozyorov/cursor-init
Cursor initialization - place between curly brackets for default find({}) query
2014-06-15 00:48:44 +10:00
Stephen Steneker c7995fa2b7 Merge pull request #594 from VBelozyorov/issue-433
"Show/Hide" buttons for password and passphrase fields
2014-06-15 00:41:47 +10:00
Vladimir Belozyorov cd03cebb91 AM/PM removed from records in LogWidget 2014-06-13 23:39:26 +04:00
Vladimir Belozyorov 7ccfcce9d7 SshTunelTab replaced with SshTunnelTab 2014-06-13 22:44:04 +04:00
Vladimir Belozyorov d6bc5d5a88 Changes in toolbars visibility are saved in config file
#457
2014-06-13 22:20:00 +04:00
Vladimir Belozyorov a02218d634 SettingsManager stores toolbars settings
only isVisisble, for now
2014-06-13 22:17:13 +04:00
Stephen Steneker 86edc64a19 Clean up GenericName 2014-06-12 23:54:43 +10:00
Vladimir Belozyorov 8f00ab3dfe Fix #433: "Show/Hide" buttons for password and passphrase fields 2014-06-12 15:37:20 +04:00
Vladimir Belozyorov 75a1112986 Fixed saving option into config file 2014-06-12 02:13:47 +04:00
Vladimir Belozyorov bb3ea494a6 Item for options menu 2014-06-12 02:04:50 +04:00
Vladimir Belozyorov 8117919fe5 Check setting state on new tab opening 2014-06-12 02:03:39 +04:00
Vladimir Belozyorov 9a6b3236af Setting for auto execution 2014-06-12 02:02:42 +04:00
Stephen Steneker e924b1a8ec Merge pull request #588 from gavruk/settingsmanagertypo
[-] SettingsManager typo
2014-06-12 07:18:41 +10:00
Vladimir Belozyorov 4fbfa1e3e0 "View documents" item of collection's context menu does the same query as double click on collection item 2014-06-12 01:10:17 +04:00
Vladimir Belozyorov eea3b74778 Cursor placed between curly braces after double click on collection item 2014-06-12 01:08:45 +04:00
Vladimir Belozyorov 47582bf729 "Collapse Recursively" feature for Tree Mode 2014-06-11 23:45:07 +04:00
Vladimir Belozyorov 882b2ed721 Robomongo::detail::uniqueRows() returns indexes of top-level items 2014-06-11 23:42:28 +04:00
Sergey Gavruk 4ab5ae3ad9 [-] SettingsManager typo 2014-06-11 21:40:14 +03:00
Vladimir Belozyorov ffe4491094 Expanding of multiple selected documents
#384
2014-06-10 21:55:30 +04:00
Vladimir Belozyorov fa4fa67b87 Typo Multy -> Multi 2014-06-10 21:35:02 +04:00
Stephen Steneker 366c3bab10 Merge pull request #584 from stennie/issue-559
Fix #559: Default ObjectID - Timestamp Tooltip
2014-06-10 09:33:21 +10:00
Stephen Steneker b3f21cbe32 Fix #559: Default ObjectID - Timestamp Tooltip
- add "Copy Timestamp from ObjectId" to context menu for ObjectId field
2014-06-10 09:29:31 +10:00
Stephen Steneker 50179cc27a Merge pull request #581 from stennie/issue-447
Issue #447: Reload actually re-executes query
2014-06-08 18:31:46 +10:00
Stephen Steneker 03c6abca60 Issue #447: Reload actually re-executes query
- rename "Reload" to "Re-execute Query"
 - rename "Duplicate" to "Duplicate Query In New Shell"
2014-06-08 18:29:14 +10:00
Stephen Steneker 2a663f658a Merge pull request #580 from stennie/issue-551
Fix #551: Reload Query with keyboard shortcut doesn't work
2014-06-08 18:02:30 +10:00
Stephen Steneker 46d4fb576d Fix #551: Reload Query with keyboard shortcut doesn't work 2014-06-08 18:01:15 +10:00
Stephen Steneker 9bc52f594e Merge branch 'master' of github.com:paralect/robomongo 2014-06-08 17:40:26 +10:00
Stephen Steneker 87bf0e121d Use setShortcuts() instead of setShortCut() with QKeySequence
combinations to catch alternate sequences in addition to primary.
2014-06-08 17:38:50 +10:00
Stephen Steneker 5560f5d721 Merge pull request #579 from stennie/issue-421
Fix #421: Consistent numbering for tree/table/text view items
2014-06-08 17:23:39 +10:00
Stephen Steneker aee1fea979 Fix #421: Consistent numbering for tree/table/text view items 2014-06-08 17:21:40 +10:00
Stephen Steneker c71dc28c76 Detab and fix indentation 2014-06-08 16:47:21 +10:00
Stephen Steneker dfffef1d9c Fix spello in comment 2014-06-08 16:46:43 +10:00
Stephen Steneker 6546511d2e Spello fixup: s/indexses/indexes/g 2014-06-08 16:37:30 +10:00
Stephen Steneker 34cf176e24 Merge pull request #577 from stennie/issue-548
Fix #548: Cannot make the Edit Document Window smaller
2014-06-08 01:31:48 +10:00
Stephen Steneker 0a5c086b26 Fix #548: Cannot make the Edit Document Window smaller
- minimumSize() of editor window was incorrectly set based on screen
   geometry
2014-06-08 01:28:29 +10:00
Stephen Steneker 44c1cb8e8f Merge pull request #576 from stennie/issue-87
Fix #87: Switching tabs using standard keys on OS X
2014-06-08 00:55:38 +10:00
Stephen Steneker 44f79cb03f Fix #87: Switching tabs using standard keys on OS X
- use QKeysequence::NextChild and QKeysequence::PreviousChild for
   standard cross-platform next/prev tab keyboard shortcuts
 - add Window menu including full screen, minimize, and prev/next tab
2014-06-08 00:51:11 +10:00
Stephen Steneker 62ea86c485 Merge pull request #570 from stennie/issue-405
Fix #405: expand current server as soon as you connect to it
2014-06-04 00:38:01 +10:00
Stephen Steneker 07eddfe53d Fix #405: expand current server as soon as you connect to it 2014-06-04 00:37:03 +10:00
Stephen Steneker 1f32363f66 Merge pull request #569 from stennie/issue-468
Issue 468: add Ctrl/Cmd+'/'' as comment/uncomment keyboard shortcut
2014-06-03 23:54:51 +10:00
Stephen Steneker 33fae9f482 Add note on new shortcuts to toggle comment/uncomment 2014-06-03 23:53:25 +10:00
Stephen Steneker 12a0281283 Per #468: add Ctrl/Cmd+'/'' as comment/uncomment keyboard shortcut 2014-06-03 23:41:39 +10:00
Stephen Steneker d4f2304c82 Merge pull request #568 from stennie/issue-544
Fix #544: Space after document causes validation error
2014-06-03 23:24:24 +10:00
Stephen Steneker db80ef4bfb Fix #544: Space after document causes validation error
- error messages for JSON validation could still be greatly improved
2014-06-03 23:21:43 +10:00
Stephen Steneker 0d85ac6a18 Remove obsolete instructions 2014-06-03 22:42:47 +10:00
Stephen Steneker 8e46fcfbb2 Grammar correction: s/is no results/are no results/ 2014-06-03 21:51:35 +10:00
Stephen Steneker c813fef558 Merge pull request #567 from stennie/issue-564
Fix #564: Add user preference to have line numbers displayed in editor by default
2014-06-03 20:20:09 +10:00
Stephen Steneker a9d21ddc39 Fix #564
- User preference to have line numbers displayed in editor by default
2014-06-03 20:17:57 +10:00
Stephen Steneker d489d9a83c Merge pull request #556 from VBelozyorov/issue-509
Saving previous view modes in private field of OutputWidget
2014-06-03 19:07:52 +10:00
Stephen Steneker ee89cd47f7 Merge pull request #555 from VBelozyorov/issue-467
Comment / uncomment selected code in the shell
2014-06-03 19:00:59 +10:00
Vladimir Belozyorov 6822013d5d Unnecessary typecast removed
#467
2014-06-03 08:15:44 +04:00
Stephen Steneker fa26dfe9c7 Merge pull request #565 from stennie/issue-449
Fixes #449: Add line numbers to JSON editing window (OS X)
2014-06-03 00:29:39 +10:00
Stephen Steneker 1ac22072a5 Fixes #449
- Line numbers in JSON views can be toggled with Ctrl+F11 on OS X
2014-06-03 00:21:03 +10:00
Stephen Steneker eaf484b9c7 Merge pull request #563 from stennie/issue-519
Fixes #519: Full screen mode not working on OS X
2014-06-02 23:58:08 +10:00
Stephen Steneker 1b7ad2c4f5 Fixes #519: Full screen mode not working on OS X
- changed fullscreen shortcut to Cmd/Ctrl+F11
2014-06-02 23:56:50 +10:00
Stephen Steneker d936a2b75c Merge pull request #560 from stennie/issue-408
Fixes #408
2014-06-02 23:21:11 +10:00
Stephen Steneker 62160ac662 Fixes #408
- use standard "New" shortcuts to open new connections
 - use standard "Open" shortcuts to open .js files
 - update shortcuts.txt with current shortcuts
2014-06-02 22:59:25 +10:00
Vladimir Belozyorov d51481faaa Saving previous view modes in private field of OutputWidget
#509
2014-06-01 18:13:04 +04:00
Vladimir Belozyorov 0d9a72b058 Ctrl+Shift+C shortcut toggle comments in the shell
#467
2014-06-01 16:20:51 +04:00
Vladimir Belozyorov 2de96e705f Public methods for managing value of ScriptWidget::_disableTextAndCursorNotifications 2014-06-01 16:13:05 +04:00
Vladimir Belozyorov 5ce6ead32e Ignore Ctrl+Shift+C in RoboScintilla::keyPressEvent() 2014-06-01 16:01:44 +04:00
Vladimir Belozyorov 1444197e50 Hotkey for comment toggling in KeyboardManager 2014-06-01 15:49:12 +04:00
Dmitry Schetnikovich 169a4ea24d Merge pull request #527 from stennie/issue-414
Fix #414: View documents fail if collection name is "group"
2014-05-14 19:24:34 +03:00
Dmitry Schetnikovich c9b0af1cfe Merge pull request #530 from stennie/issue-500
Fix #500: TTL index should allow expiry of 0 seconds
2014-05-12 20:57:04 +03:00
Dmitry Schetnikovich 3a542eb8d0 Merge pull request #529 from stennie/issue-505
Fix #505: OS specific keyboard shortcut tips
2014-05-12 20:56:50 +03:00
Dmitry Schetnikovich 4f83b8954b Merge pull request #528 from stennie/issue-506
Fix #506: Usability request - add initial curly braces to command bar
2014-05-12 20:56:20 +03:00
Dmitry Schetnikovich b2bbcc2836 Merge pull request #525 from stennie/issue-524
Fix #524: OS X build fixes for XCode 5 / libc++
2014-05-12 20:44:21 +03:00
Stephen Steneker 9fd7c93ef2 Fix #500: TTL index should allow expiry of 0 seconds
Docs example:
http://docs.mongodb.org/manual/tutorial/expire-data/#expire-documents-at-a-certain-clock-time
2014-05-05 23:31:40 +10:00
Stephen Steneker 2d09dc3763 Fix #505: OS specific keyboard shortcut tips 2014-05-05 20:06:11 +10:00
Stephen Steneker 819d6b2dba Fix #506: Usability request - add initial curly braces to command bar 2014-05-05 18:32:55 +10:00
Stephen Steneker bb988da66a Fix #414
Given that conflicting function names may vary between versions of MongoDB,
it is much saner to use the more explicit getCollection() syntax instead of
trying to enumerate all exceptions.
2014-05-05 12:19:53 +10:00
Stephen Steneker 2769173b5a Need to include locale.h for libc++ 2014-05-05 12:00:06 +10:00
Stephen Steneker 9373f1b57f Upgrade from gtest 1.6.0 to 1.7.0 2014-05-05 11:49:41 +10:00
Stephen Steneker 6f40ca27e3 Cherry-pick some libc++ fixes from: https://jira.mongodb.org/browse/SERVER-11070 2014-05-05 11:47:02 +10:00
Stephen Steneker 934aa32325 Fix typo: s/Openning/Opening/ 2014-05-04 23:23:53 +10:00
Stephen Steneker fd9d13e486 Include common rules from gitignore.io 2014-05-04 23:22:05 +10:00
schetnikovich 55428b80dc Resource entries configuration refactored 2013-12-20 00:14:50 +03:00
schetnikovich 029078e44f Tab character removed from source files 2013-12-19 20:30:03 +03:00
schetnikovich 7b6bb1f34a CMakeLists.txt cleanup 2013-12-19 20:19:42 +03:00
schetnikovich 9d4957a968 CMake cleanups, baby steps 2013-12-19 00:25:54 +03:00
schetnikovich ee6e6b84bd ComboBox setCurrentText emulation for Qt4 2013-12-18 22:18:33 +03:00
schetnikovich 84ec758cfe Merge branch 'master' of github.com:paralect/robomongo 2013-12-18 22:13:25 +03:00
schetnikovich e3219f3892 Qt4 support is back 2013-12-18 22:13:13 +03:00
Dmitry Schetnikovich 0ef9b18252 Spaces removed from EXTRAPATH 2013-12-14 22:05:45 +03:00
Dmitry Schetnikovich 6b462147e5 Fix for MongoDB build command with extrapath 2013-12-14 20:52:33 +03:00
schetnikovich 132629bc5a Merge branch 'v0.8.4' of github.com:topilski/robomongo into topilski-0.8.4 2013-12-13 20:56:35 +03:00
schetnikovich 9d2cc7a7b4 Changelog updated 2013-11-27 23:35:09 +03:00
schetnikovich 0d4813b711 Backup of CMake files 2013-11-21 22:26:56 +03:00
schetnikovich 1c42c60532 Minor changes in utils.cmake 2013-11-21 22:26:06 +03:00
schetnikovich c3a2fa8558 .gitignore updated 2013-11-20 22:13:20 +03:00
topilski 6c09bb657f Update App version 2013-11-15 15:07:08 +03:00
Dmitry Schetnikovich 61504814dd Merge branch 'master' of https://github.com/paralect/robomongo 2013-11-14 00:02:35 +03:00
Dmitry Schetnikovich a2051d0307 MSVC build fixes 2013-11-14 00:02:20 +03:00
schetnikovich 578e55a780 Support for all reserved words when building collection query and fix for collection names with slashes (#404) 2013-11-13 23:53:55 +03:00
schetnikovich 1a3fd7f731 Output is splited on executable and library. 2013-11-13 22:06:02 +03:00
Dmitry Schetnikovich eee0eb3665 Merge pull request #409 from topilski/084rc2
0.8.4 RC2
2013-11-11 12:01:32 -08:00
schetnikovich 60d80c4717 README.md updates 2013-11-11 01:51:26 +03:00
schetnikovich 1906ed61c0 README.md updates 2013-11-11 01:50:14 +03:00
schetnikovich 545194cb33 Vote for the feature 2013-11-11 01:49:22 +03:00
schetnikovich 619559eee8 Note about backlog 2013-11-11 01:46:28 +03:00
topilski 2b058231dd Fix unix builds 2013-11-08 15:04:42 +03:00
topilski 0200ff055e Some code update 2013-11-08 14:48:15 +03:00
topilski e36c399be7 Date min and max is not parsed or displayed correctly #356 (displaying) 2013-11-08 14:24:55 +03:00
topilski 2f5d8f3071 Date min and max is not parsed or displayed correctl(only crash) #356 2013-11-08 10:24:08 +03:00
Dmitry Schetnikovich 1ce2869a30 Merge pull request #403 from VBelozyorov/issue-402
Saving initial viewMode on forced downgrade, because #402
2013-11-05 13:46:35 -08:00
Vladimir Belozyorov f988474be6 Saving initial viewMode on forced downgrade, because #402 2013-11-05 21:09:20 +04:00
schetnikovich 365b5ce735 Change log updated for 0.8.4 2013-11-04 19:41:21 +03:00
schetnikovich 5d1348ff9b Whats new file updated for Robomongo 0.8.4 2013-11-04 01:37:54 +03:00
Alexandr 1cd59ebca3 Merge pull request #393 from topilski/084-beta2-bugfix
Some little bugfix
2013-10-31 23:16:41 -07:00
schetnikovich 08a5bfbfe1 Naming tweaks 2013-11-01 05:10:59 +03:00
topilski d0156f76dc Add fast build scripts for Windows 2013-10-31 15:57:44 +03:00
topilski 30a3634208 Add new build scripts 2013-10-31 15:20:56 +03:00
topilski 4380f75137 Delete not needed files 2013-10-31 13:57:13 +03:00
topilski 0d7e34f9d9 #386 Multiple confirmation at pressing "delete" key at deleting multiple documents. 2013-10-31 10:30:51 +03:00
schetnikovich 3b192c02e0 Robomongo 0.8.4 beta 2 2013-10-31 00:53:55 +03:00
schetnikovich f4b2cda8b6 SSH configuration UI tweaks 2013-10-31 00:42:35 +03:00
schetnikovich 1bd95d170e SSL configuration UI tweaks 2013-10-30 22:13:05 +03:00
Dmitry Schetnikovich 8f0947df70 Merge pull request #383 from topilski/bugfix
Bugfix
2013-10-28 15:13:49 -07:00
topilski 6dfe7ddab6 Connection context menu appears independently of position of Robomongo instance. 2013-10-28 16:46:53 +03:00
topilski 654fd3e6fb Design of diagnostic dialog while testing connection differs from 0.8.3 (new fix) 2013-10-28 16:20:28 +03:00
topilski aa039e5d18 Fix zlib search algorithm 2013-10-28 09:15:33 -04:00
topilski 95cabe1226 Add static link openssl to build script 2013-10-28 15:46:46 +03:00
topilski f9c9c7b27b Delete cmake warnings 2013-10-28 15:42:23 +03:00
topilski df99ba2e33 Fixup build cpack script 2013-10-28 15:36:43 +03:00
topilski 0ee046f2e6 Add zlib library to openssl static linking 2013-10-28 15:35:39 +03:00
topilski a77583dc2b Fix cpack build script 2013-10-28 11:57:27 +03:00
topilski 63e9e8a355 Design of "Create Database" dialog is changed from 0.8.3 2013-10-28 11:34:59 +03:00
topilski 23d550b1b0 Design of diagnostic dialog while testing connection differs from 0.8.3 2013-10-28 11:20:53 +03:00
topilski 376453e988 Fix rpm package 2013-10-28 03:39:29 -04:00
topilski 0860f3e0c8 Crash at expanding something that you has no permissions to expand. 2013-10-25 13:17:22 +03:00
topilski bd7ff6a67c Create or edit index problem #341 2013-10-25 13:07:59 +03:00
topilski a8000fe1d0 Manage connection: SSH support checkbox unchecks automatically at checking/unchecking authentication. 2013-10-25 12:58:15 +03:00
topilski 1070c33fe6 Merge remote-tracking branch 'upstream/master' 2013-10-24 12:31:02 +03:00
Dmitry Schetnikovich 90a8a2dea5 Merge pull request #375 from topilski/bugfix
Bugfix and Code polishing
2013-10-22 11:02:05 -07:00
topilski f7975f9f06 Add CollectionInfo struct, some refactoring 2013-10-22 16:03:21 +03:00
topilski 8cb033e2b2 Fix modeles dialogs problem 2013-10-22 14:38:06 +03:00
topilski 274d6dc07a [UI] Cannot downsize edit/view document windows. (rbm0.8.3, win7x32) #369 2013-10-22 11:49:24 +03:00
topilski 710d0775d7 Crash at pressing "Ctrl+T" without any connection. 2013-10-21 10:52:07 +03:00
topilski f15e22ae58 SSH option "Security" always switched to "password" after unchecking SSH and saving connection. 2013-10-21 10:45:29 +03:00
topilski 5fbc38d4bd Fix linux package build 2013-10-18 15:29:02 +03:00
topilski 4b009ce440 Update cmakefile 2013-10-18 14:09:33 +03:00
topilski 18726e76eb Add creating symlinks for libssl libraries 2013-10-18 12:59:07 +03:00
topilski 9929332dd2 Crash when add ISODate field #350 2013-10-18 09:35:54 +03:00
topilski 41a29ab74d Merge branch 'master' of https://github.com/topilski/robomongo 2013-10-18 09:05:45 +03:00
Dmitry Schetnikovich e871ea1539 Merge pull request #367 from topilski/117-ssh
#117 and #100: SSH+SSL
2013-10-17 09:11:39 -07:00
topilski 4a8e32c490 Add libssl to install phase 2013-10-17 14:26:51 +03:00
topilski 0f50a30cbe Update error message in case of SSL+SSH are enabled together. 2013-10-17 09:02:25 +03:00
topilski 0352799a55 Once checked SSH, cannot be unchecked. 2013-10-17 09:00:15 +03:00
topilski d21102c8cb Update beta version 2013-10-16 16:32:53 +03:00
topilski f0515056fc Fix displaying server name, and direct connection to ssl server 2013-10-16 15:12:51 +03:00
topilski f75acc76f4 Stable build 2013-10-16 15:03:20 +03:00
topilski e934292152 Typos in Manage Connection dialog. 2013-10-16 12:06:36 +03:00
topilski f76db62c5a Stable ssl pemFile 2013-10-16 12:06:35 +03:00
topilski 592f3653c0 Regexp error (with non-latin symbols) #351 2013-10-16 12:06:35 +03:00
topilski b3781ea229 Fix displaying server name 2013-10-16 12:06:34 +03:00
topilski 6f3c902c73 Added log messages if ssh connect failed 2013-10-16 12:06:34 +03:00
topilski 9eaf490781 Merge libssh2_win and libssh_linux configs 2013-10-16 12:06:33 +03:00
topilski 0fe17b8fa1 SSH support #117 (work on Mac) added needed mac header 2013-10-16 12:06:33 +03:00
topilski 7755912732 SSH support #117 (work on fedora) added needed linux header 2013-10-16 12:06:32 +03:00
topilski 62068bd910 ssh support #117 first stable windows version (without ssh+ssl) 2013-10-16 12:06:32 +03:00
topilski 025997b62d Stable ssh connection (intermediate commit) 2013-10-16 12:06:32 +03:00
topilski 6d3f9ca769 ssh support #117 (only windows, some problem with shell, intermediate commit) 2013-10-16 12:06:31 +03:00
topilski 358628a447 Added SSH tunnel dialog 2013-10-16 12:06:30 +03:00
topilski 633a2dce6a Added RDBClientConnection (Robomongo client connection) 2013-10-16 12:06:30 +03:00
topilski 0a3a4e6778 ScriptEngine global mutex 2013-10-16 12:06:29 +03:00
topilski 14d805c960 Fix build 2013-10-16 12:06:28 +03:00
topilski 4c04c9a3e7 Delete include directory 2013-10-16 12:06:28 +03:00
topilski c80de5ac63 Remove pcre not needed includes 2013-10-16 12:06:25 +03:00
topilski fd655e5afa Stable global variables 2013-10-16 12:06:23 +03:00
topilski 06ec74ded7 Support for mongod's with SSL #100 (work also with sslPEMKeyFile) 2013-10-16 12:06:21 +03:00
topilski f3ba08608c Support for mongod's with SSL #100 (Work as mongo --ssl only) 2013-10-16 12:06:20 +03:00
topilski fa962e9727 Added ssh first step. 2013-10-16 12:06:20 +03:00
topilski fcc03d62f2 Move parse algoritm to mongo jsonparser 2013-10-16 10:54:20 +03:00
Dmitry Schetnikovich 4c5a409f27 Merge pull request #359 from VBelozyorov/issue-345
Auto expand of first item in tree view. #345
2013-10-15 12:50:28 -07:00
Dmitry Schetnikovich 59bae954a4 Merge pull request #365 from VBelozyorov/urls-in-about-dlg
GitHub url doesn't work in About Dialog (Mac)
2013-10-15 11:38:32 -07:00
Dmitry Schetnikovich 7db2b70af5 Merge pull request #364 from rskvazh/patch-1
Url doesn't work in About Dialog (Mac)
2013-10-15 11:37:37 -07:00
Vladimir Belozyorov 2f696080ef Specified protocol in url for issues on github 2013-10-15 21:23:13 +04:00
Vladimir Belozyorov ba3b2471cc Menu option for auto expanding of first item 2013-10-15 19:56:15 +04:00
Roman Skvazh 1e58918abd fix url in about dialog
In Mac OS X link "Visit Robomongo website:" does not work.
2013-10-15 06:19:40 -07:00
topilski 45b6326aa3 Fix ssh checkbox 2013-10-15 16:05:21 +03:00
topilski ec819f5eca Typos in Public and Private key dialogs 2013-10-15 15:27:04 +03:00
topilski 5b926da192 Stable ssh and ssl suport, final build 2013-10-15 15:00:12 +03:00
topilski 7ad06822fd Ssh add publicKey connection 2013-10-15 11:19:58 +03:00
Vladimir Belozyorov 943e06425f Auto expand of first item in tree view. #345 2013-10-12 23:04:59 +04:00
topilski 23e9e44136 Typos in Manage Connection dialog. 2013-10-11 16:56:42 +03:00
topilski f21e0db417 Stable ssl pemFile 2013-10-11 11:43:12 +03:00
topilski 731e5d2aea Regexp error (with non-latin symbols) #351 2013-10-11 10:53:17 +03:00
topilski 57c0007249 Fix displaying server name 2013-10-11 09:24:31 +03:00
topilski 48d98f5657 Added log messages if ssh connect failed 2013-10-10 14:43:54 +03:00
topilski 5e25e62b8f Merge libssh2_win and libssh_linux configs 2013-10-10 14:01:15 +03:00
topilski dff8f9dfd7 SSH support #117 (work on Mac) added needed mac header 2013-10-10 10:39:21 +01:00
topilski 5931cd8cca SSH support #117 (work on fedora) added needed linux header 2013-10-10 13:09:47 +04:00
topilski 55ae8f05f5 ssh support #117 first stable windows version (without ssh+ssl) 2013-10-10 10:49:24 +03:00
Dmitry Schetnikovich acef635b77 License mentioned in README.md 2013-10-10 01:25:59 +03:00
Dmitry Schetnikovich 1017822d0e License is mentioned in README.md 2013-10-10 01:24:42 +03:00
topilski 76ed180ce5 Stable ssh connection (intermediate commit) 2013-10-09 17:00:07 +03:00
topilski 51073a55d1 ssh support #117 (only windows, some problem with shell, intermediate commit) 2013-10-08 14:44:50 +03:00
topilski 1f1c6b7971 Added SSH tunnel dialog 2013-10-07 15:58:11 +03:00
topilski fc8e4b9df4 Added RDBClientConnection (Robomongo client connection) 2013-10-07 09:41:00 +03:00
topilski 7981cee5ae ScriptEngine global mutex 2013-10-04 16:15:48 +03:00
topilski 84f41ba312 Fix build 2013-10-04 12:03:43 +03:00
topilski 8c227ca509 Delete include directory 2013-10-04 11:24:21 +03:00
topilski cb5f2d9d51 Remove pcre not needed includes 2013-10-03 16:35:03 +03:00
topilski 231067ba14 Stable global variables 2013-10-03 16:02:20 +03:00
topilski 6b24d5c6b5 Support for mongod's with SSL #100 (work also with sslPEMKeyFile) 2013-10-03 14:41:39 +03:00
topilski 7ec623b224 Support for mongod's with SSL #100 (Work as mongo --ssl only) 2013-10-03 11:03:30 +03:00
topilski 4a0c30526b Merge remote-tracking branch 'upstream/master' 2013-10-02 09:47:05 +03:00
topilski a91c598c07 Merge branch 'master' of https://github.com/topilski/robomongo 2013-10-02 08:00:19 +03:00
topilski 69ec7474b7 Added ssh first step. 2013-10-02 07:59:24 +03:00
11462 changed files with 1038075 additions and 2319262 deletions
+85 -8
View File
@@ -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/
+400
View File
@@ -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
View File
@@ -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)
+3
View File
@@ -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.
+76 -61
View File
@@ -1,81 +1,96 @@
About Robomongo
===============
Robomongo &mdash; 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) [![Join the chat at https://gitter.im/paralect/robomongo](https://badges.gitter.im/Join%20Chat.svg)](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 &mdash;
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/>.
+20
View File
@@ -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
Executable
+8
View File
@@ -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
+15
View File
@@ -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%
Executable
+7
View File
@@ -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
+15
View File
@@ -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%"
+49
View File
@@ -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
+48
View File
@@ -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%"
)
Vendored Executable
+8
View File
@@ -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
+15
View File
@@ -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
View File
@@ -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}"
+15
View File
@@ -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
Executable
+8
View File
@@ -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}"
+15
View File
@@ -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
Executable
+12
View File
@@ -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
+142
View File
@@ -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)
+21
View File
@@ -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()
+20
View File
@@ -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.)
+32
View File
@@ -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)
+3
View File
@@ -0,0 +1,3 @@
set(ROBOMONGO_DISPLAY_NAME "Robomongo")
set(ROBOMONGO_DISPLAY_FULL_NAME "Robomongo ${PROJECT_VERSION}")
+30
View File
@@ -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("")
+66
View File
@@ -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()
+108
View File
@@ -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()
+105
View File
@@ -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()
+120
View File
@@ -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)
+123
View File
@@ -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()
+154
View File
@@ -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()
+26
View File
@@ -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)
-82
View File
@@ -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()
+55
View File
@@ -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
-23
View File
@@ -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)
+50
View File
@@ -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
+52
View File
@@ -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
+132
View File
@@ -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
+49
View File
@@ -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
-388
View File
@@ -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) $@
-375
View File
@@ -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
-826
View File
@@ -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&nbsp;<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.&nbsp; 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.&nbsp; 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.&nbsp; 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.&nbsp; (NSPR implements a portable threading library,
among other things.&nbsp; 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>.)&nbsp;
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>.&nbsp; (<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.)&nbsp; <font color="#CC0000">NOTE: makefile.win
is an nmake file used only for building the JS-engine in the Mozilla browser.&nbsp;
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>.&nbsp; <font color="#CC0000">NOTE:
Do not attempt to use Makefile to build the standalone JavaScript engine.&nbsp;
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.&nbsp; The configuration
file specifies the compiler/linker to be used and allows for customization
of command-line options.&nbsp; 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>.&nbsp;
(Except that HP builds only work using the native compiler.&nbsp; gcc won't
link correctly with shared libraries on that platform.&nbsp; 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>.&nbsp;
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>&nbsp;&nbsp;&nbsp; /*
&nbsp;&nbsp;&nbsp;&nbsp; * Tune this to avoid wasting space for shallow stacks, while saving on
&nbsp;&nbsp;&nbsp;&nbsp; * malloc overhead/fragmentation for deep or highly-variable stacks.
&nbsp;&nbsp;&nbsp;&nbsp; */
&nbsp;&nbsp;&nbsp; #define STACK_CHUNK_SIZE&nbsp;&nbsp;&nbsp; 8192
&nbsp;&nbsp;&nbsp; JSRuntime *rt;
&nbsp;&nbsp;&nbsp; JSContext *cx;
&nbsp;&nbsp;&nbsp; /* You need a runtime and one or more contexts to do anything with JS. */
&nbsp;&nbsp;&nbsp; rt = JS_NewRuntime(0x400000L);
&nbsp;&nbsp;&nbsp; if (!rt)
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; fail("can't create JavaScript runtime");
&nbsp;&nbsp;&nbsp; cx = JS_NewContext(rt, STACK_CHUNK_SIZE);
&nbsp;&nbsp;&nbsp; if (!cx)
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; fail("can't create JavaScript context");
&nbsp;&nbsp;&nbsp; /*
&nbsp;&nbsp;&nbsp;&nbsp; * The context definitely wants a global object, in order to have standard
&nbsp;&nbsp;&nbsp;&nbsp; * classes and functions like Date and parseInt.&nbsp; See below for details on
&nbsp;&nbsp;&nbsp;&nbsp; * JS_NewObject.
&nbsp;&nbsp;&nbsp;&nbsp; */
&nbsp;&nbsp;&nbsp; JSObject *globalObj;
&nbsp;&nbsp;&nbsp; globalObj = JS_NewObject(cx, &amp;my_global_class, 0, 0);
&nbsp;&nbsp;&nbsp; JS_InitStandardClasses(cx, globalObj);</tt></pre>
<h4>
Defining objects and properties</h4>
<pre><tt>&nbsp;&nbsp;&nbsp; /* Statically initialize a class to make "one-off" objects. */
&nbsp;&nbsp;&nbsp; JSClass my_class = {
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; "MyClass",
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; /* All of these can be replaced with the corresponding JS_*Stub
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; function pointers. */
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; my_addProperty, my_delProperty, my_getProperty, my_setProperty,
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; my_enumerate,&nbsp;&nbsp; my_resolve,&nbsp;&nbsp;&nbsp;&nbsp; my_convert,&nbsp;&nbsp;&nbsp;&nbsp; my_finalize
&nbsp;&nbsp;&nbsp; };
&nbsp;&nbsp;&nbsp; JSObject *obj;
&nbsp;&nbsp;&nbsp; /*
&nbsp;&nbsp;&nbsp;&nbsp; * Define an object named in the global scope that can be enumerated by
&nbsp;&nbsp;&nbsp;&nbsp; * for/in loops.&nbsp; The parent object is passed as the second argument, as
&nbsp;&nbsp;&nbsp;&nbsp; * with all other API calls that take an object/name pair.&nbsp; The prototype
&nbsp;&nbsp;&nbsp;&nbsp; * passed in is null, so the default object prototype will be used.
&nbsp;&nbsp;&nbsp;&nbsp; */
&nbsp;&nbsp;&nbsp; obj = JS_DefineObject(cx, globalObj, "myObject", &amp;my_class, NULL,
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; JSPROP_ENUMERATE);
&nbsp;&nbsp;&nbsp; /*
&nbsp;&nbsp;&nbsp;&nbsp; * Define a bunch of properties with a JSPropertySpec array statically
&nbsp;&nbsp;&nbsp;&nbsp; * initialized and terminated with a null-name entry.&nbsp; Besides its name,
&nbsp;&nbsp;&nbsp;&nbsp; * each property has a "tiny" identifier (MY_COLOR, e.g.) that can be used
&nbsp;&nbsp;&nbsp;&nbsp; * in switch statements (in a common my_getProperty function, for example).
&nbsp;&nbsp;&nbsp;&nbsp; */
&nbsp;&nbsp;&nbsp; enum my_tinyid {
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; MY_COLOR, MY_HEIGHT, MY_WIDTH, MY_FUNNY, MY_ARRAY, MY_RDONLY
&nbsp;&nbsp;&nbsp; };
&nbsp;&nbsp;&nbsp; static JSPropertySpec my_props[] = {
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {"color",&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; MY_COLOR,&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; JSPROP_ENUMERATE},
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {"height",&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; MY_HEIGHT,&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; JSPROP_ENUMERATE},
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {"width",&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; MY_WIDTH,&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; JSPROP_ENUMERATE},
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {"funny",&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; MY_FUNNY,&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; JSPROP_ENUMERATE},
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {"array",&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; MY_ARRAY,&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; JSPROP_ENUMERATE},
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {"rdonly",&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; MY_RDONLY,&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; JSPROP_READONLY},
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {0}
&nbsp;&nbsp;&nbsp; };
&nbsp;&nbsp;&nbsp; JS_DefineProperties(cx, obj, my_props);
&nbsp;&nbsp;&nbsp; /*
&nbsp;&nbsp;&nbsp;&nbsp; * Given the above definitions and call to JS_DefineProperties, obj will
&nbsp;&nbsp;&nbsp;&nbsp; * need this sort of "getter" method in its class (my_class, above).&nbsp; See
&nbsp;&nbsp;&nbsp;&nbsp; * the example for the "It" class in js.c.
&nbsp;&nbsp;&nbsp;&nbsp; */
&nbsp;&nbsp;&nbsp; static JSBool
&nbsp;&nbsp;&nbsp; my_getProperty(JSContext *cx, JSObject *obj, jsval id, jsval *vp)
&nbsp;&nbsp;&nbsp; {
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if (JSVAL_IS_INT(id)) {
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; switch (JSVAL_TO_INT(id)) {
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; case MY_COLOR:&nbsp; *vp = . . .; break;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; case MY_HEIGHT: *vp = . . .; break;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; case MY_WIDTH:&nbsp; *vp = . . .; break;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; case MY_FUNNY:&nbsp; *vp = . . .; break;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; case MY_ARRAY:&nbsp; *vp = . . .; break;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; case MY_RDONLY: *vp = . . .; break;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return JS_TRUE;
&nbsp;&nbsp;&nbsp; }</tt></pre>
<h4>
Defining functions</h4>
<pre><tt>&nbsp;&nbsp;&nbsp; /* Define a bunch of native functions first: */
&nbsp;&nbsp;&nbsp; static JSBool
&nbsp;&nbsp;&nbsp; my_abs(JSContext *cx, JSObject *obj, uintN argc, jsval *argv, jsval *rval)
&nbsp;&nbsp;&nbsp; {
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; jsdouble x, z;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if (!JS_ValueToNumber(cx, argv[0], &amp;x))
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return JS_FALSE;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; z = (x &lt; 0) ? -x : x;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return JS_NewDoubleValue(cx, z, rval);
&nbsp;&nbsp;&nbsp; }
&nbsp;&nbsp;&nbsp; . . .
&nbsp;&nbsp;&nbsp; /*
&nbsp;&nbsp;&nbsp;&nbsp; * Use a JSFunctionSpec array terminated with a null name to define a
&nbsp;&nbsp;&nbsp;&nbsp; * bunch of native functions.
&nbsp;&nbsp;&nbsp;&nbsp; */
&nbsp;&nbsp;&nbsp; static JSFunctionSpec my_functions[] = {
&nbsp;&nbsp;&nbsp; /*&nbsp;&nbsp;&nbsp; name&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; native&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; nargs&nbsp;&nbsp;&nbsp; */
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {"abs",&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; my_abs,&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 1},
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {"acos",&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; my_acos,&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 1},
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {"asin",&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; my_asin,&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 1},
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; . . .
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {0}
&nbsp;&nbsp;&nbsp; };
&nbsp;&nbsp;&nbsp; /*
&nbsp;&nbsp;&nbsp;&nbsp; * Pass a particular object to define methods for it alone.&nbsp; If you pass
&nbsp;&nbsp;&nbsp;&nbsp; * a prototype object, the methods will apply to all instances past and
&nbsp;&nbsp;&nbsp;&nbsp; * future of the prototype's class (see below for classes).
&nbsp;&nbsp;&nbsp;&nbsp; */
&nbsp;&nbsp;&nbsp; JS_DefineFunctions(cx, globalObj, my_functions);</tt></pre>
<h4>
Defining classes</h4>
<pre><tt>&nbsp;&nbsp;&nbsp; /*
&nbsp;&nbsp;&nbsp;&nbsp; * This pulls together the above API elements by defining a constructor
&nbsp;&nbsp;&nbsp;&nbsp; * function, a prototype object, and properties of the prototype and of
&nbsp;&nbsp;&nbsp;&nbsp; * the constructor, all with one API call.
&nbsp;&nbsp;&nbsp;&nbsp; *
&nbsp;&nbsp;&nbsp;&nbsp; * Initialize a class by defining its constructor function, prototype, and
&nbsp;&nbsp;&nbsp;&nbsp; * per-instance and per-class properties.&nbsp; The latter are called "static"
&nbsp;&nbsp;&nbsp;&nbsp; * below by analogy to Java.&nbsp; They are defined in the constructor object's
&nbsp;&nbsp;&nbsp;&nbsp; * scope, so that 'MyClass.myStaticProp' works along with 'new MyClass()'.
&nbsp;&nbsp;&nbsp;&nbsp; *
&nbsp;&nbsp;&nbsp;&nbsp; * JS_InitClass takes a lot of arguments, but you can pass null for any of
&nbsp;&nbsp;&nbsp;&nbsp; * the last four if there are no such properties or methods.
&nbsp;&nbsp;&nbsp;&nbsp; *
&nbsp;&nbsp;&nbsp;&nbsp; * Note that you do not need to call JS_InitClass to make a new instance of
&nbsp;&nbsp;&nbsp;&nbsp; * that class -- otherwise there would be a chicken-and-egg problem making
&nbsp;&nbsp;&nbsp;&nbsp; * the global object -- but you should call JS_InitClass if you require a
&nbsp;&nbsp;&nbsp;&nbsp; * constructor function for script authors to call via new, and/or a class
&nbsp;&nbsp;&nbsp;&nbsp; * prototype object ('MyClass.prototype') for authors to extend with new
&nbsp;&nbsp;&nbsp;&nbsp; * properties at run-time. In general, if you want to support multiple
&nbsp;&nbsp;&nbsp;&nbsp; * instances that share behavior, use JS_InitClass.
&nbsp;&nbsp;&nbsp;&nbsp; */
&nbsp;&nbsp;&nbsp; protoObj = JS_InitClass(cx, globalObj, NULL, &amp;my_class,
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; /* native constructor function and min arg count */
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; MyClass, 0,
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; /* prototype object properties and methods -- these
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; will be "inherited" by all instances through
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; delegation up the instance's prototype link. */
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; my_props, my_methods,
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; /* class constructor properties and methods */
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; my_static_props, my_static_methods);</tt></pre>
<h4>
Running scripts</h4>
<pre><tt>&nbsp;&nbsp;&nbsp; /* These should indicate source location for diagnostics. */
&nbsp;&nbsp;&nbsp; char *filename;
&nbsp;&nbsp;&nbsp; uintN lineno;
&nbsp;&nbsp;&nbsp; /*
&nbsp;&nbsp;&nbsp;&nbsp; * The return value comes back here -- if it could be a GC thing, you must
&nbsp;&nbsp;&nbsp;&nbsp; * add it to the GC's "root set" with JS_AddRoot(cx, &amp;thing) where thing
&nbsp;&nbsp;&nbsp;&nbsp; * is a JSString *, JSObject *, or jsdouble *, and remove the root before
&nbsp;&nbsp;&nbsp;&nbsp; * rval goes out of scope, or when rval is no longer needed.
&nbsp;&nbsp;&nbsp;&nbsp; */
&nbsp;&nbsp;&nbsp; jsval rval;
&nbsp;&nbsp;&nbsp; JSBool ok;
&nbsp;&nbsp;&nbsp; /*
&nbsp;&nbsp;&nbsp;&nbsp; * Some example source in a C string.&nbsp; Larger, non-null-terminated buffers
&nbsp;&nbsp;&nbsp;&nbsp; * can be used, if you pass the buffer length to JS_EvaluateScript.
&nbsp;&nbsp;&nbsp;&nbsp; */
&nbsp;&nbsp;&nbsp; char *source = "x * f(y)";
&nbsp;&nbsp;&nbsp; ok = JS_EvaluateScript(cx, globalObj, source, strlen(source),
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; filename, lineno, &amp;rval);
&nbsp;&nbsp;&nbsp; if (ok) {
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; /* Should get a number back from the example source. */
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; jsdouble d;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ok = JS_ValueToNumber(cx, rval, &amp;d);
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; . . .
&nbsp;&nbsp;&nbsp; }</tt></pre>
<h4>
Calling functions</h4>
<pre><tt>&nbsp;&nbsp;&nbsp; /* Call a global function named "foo" that takes no arguments. */
&nbsp;&nbsp;&nbsp; ok = JS_CallFunctionName(cx, globalObj, "foo", 0, 0, &amp;rval);
&nbsp;&nbsp;&nbsp; jsval argv[2];
&nbsp;&nbsp;&nbsp; /* Call a function in obj's scope named "method", passing two arguments. */
&nbsp;&nbsp;&nbsp; argv[0] = . . .;
&nbsp;&nbsp;&nbsp; argv[1] = . . .;
&nbsp;&nbsp;&nbsp; ok = JS_CallFunctionName(cx, obj, "method", 2, argv, &amp;rval);</tt></pre>
<h4>
Shutting down</h4>
<pre><tt>&nbsp;&nbsp;&nbsp; /* For each context you've created: */
&nbsp;&nbsp;&nbsp; JS_DestroyContext(cx);
&nbsp;&nbsp;&nbsp; /* For each runtime: */
&nbsp;&nbsp;&nbsp; JS_DestroyRuntime(rt);
&nbsp;&nbsp;&nbsp; /* And finally: */
&nbsp;&nbsp;&nbsp; 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.&nbsp; 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&nbsp;&nbsp; function perfect(n)
15&nbsp;&nbsp; {
16&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; print("The perfect numbers up to " +&nbsp; n + " are:");
17
18&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; // We build sumOfDivisors[i] to hold a string expression for
19&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; // the sum of the divisors of i, excluding i itself.
20&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; var sumOfDivisors = new ExprArray(n+1,1);
21&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; for (var divisor = 2; divisor &lt;= n; divisor++) {
22&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; for (var j = divisor + divisor; j &lt;= n; j += divisor) {
23&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; sumOfDivisors[j] += " + " + divisor;
24&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }
25&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; // At this point everything up to 'divisor' has its sumOfDivisors
26&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; // expression calculated, so we can determine whether it's perfect
27&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; // already by evaluating.
28&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if (eval(sumOfDivisors[divisor]) == divisor) {
29&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; print("" + divisor + " = " + sumOfDivisors[divisor]);
30&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }
31&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }
32&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; delete sumOfDivisors;
33&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; print("That's all.");
34&nbsp;&nbsp; }</tt></pre>
The line number to PC and back mappings can be tested using the js program
with the following script:
<pre><tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; load("perfect.js")
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; print(perfect)
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; dis(perfect)
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; print()
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; for (var ln = 0; ln &lt;= 40; ln++) {
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; var pc = line2pc(perfect,ln)
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; var ln2 = pc2line(perfect,pc)
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; print("\tline " + ln + " => pc " + pc + " => line " + ln2)
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }</tt></pre>
The result of the for loop over lines 0 to 40 inclusive is:
<pre><tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; line 0 => pc 0 => line 16
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; line 1 => pc 0 => line 16
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; line 2 => pc 0 => line 16
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; line 3 => pc 0 => line 16
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; line 4 => pc 0 => line 16
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; line 5 => pc 0 => line 16
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; line 6 => pc 0 => line 16
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; line 7 => pc 0 => line 16
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; line 8 => pc 0 => line 16
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; line 9 => pc 0 => line 16
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; line 10 => pc 0 => line 16
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; line 11 => pc 0 => line 16
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; line 12 => pc 0 => line 16
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; line 13 => pc 0 => line 16
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; line 14 => pc 0 => line 16
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; line 15 => pc 0 => line 16
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; line 16 => pc 0 => line 16
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; line 17 => pc 19 => line 20
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; line 18 => pc 19 => line 20
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; line 19 => pc 19 => line 20
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; line 20 => pc 19 => line 20
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; line 21 => pc 36 => line 21
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; line 22 => pc 53 => line 22
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; line 23 => pc 74 => line 23
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; line 24 => pc 92 => line 22
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; line 25 => pc 106 => line 28
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; line 26 => pc 106 => line 28
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; line 27 => pc 106 => line 28
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; line 28 => pc 106 => line 28
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; line 29 => pc 127 => line 29
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; line 30 => pc 154 => line 21
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; line 31 => pc 154 => line 21
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; line 32 => pc 161 => line 32
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; line 33 => pc 172 => line 33
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; line 34 => pc 172 => line 33
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; line 35 => pc 172 => line 33
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; line 36 => pc 172 => line 33
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; line 37 => pc 172 => line 33
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; line 38 => pc 172 => line 33
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; line 39 => pc 172 => line 33
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 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>&nbsp;
<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>&nbsp;
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>
-74
View File
@@ -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",
])
-168
View File
@@ -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>
-19
View File
@@ -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));
-186
View File
@@ -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
-65
View File
@@ -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
-64
View File
@@ -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
-65
View File
@@ -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
-36
View File
@@ -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
View File
@@ -1 +0,0 @@
mozilla/js/src/config
-1
View File
@@ -1 +0,0 @@
:pserver:anonymous@cvs-mirror.mozilla.org:/cvsroot
-1
View File
@@ -1 +0,0 @@
NJS_170
-83
View File
@@ -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
-81
View File
@@ -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
-41
View File
@@ -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
-81
View File
@@ -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
-81
View File
@@ -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
-77
View File
@@ -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
-77
View File
@@ -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
-80
View File
@@ -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
-87
View File
@@ -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
-44
View File
@@ -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
-44
View File
@@ -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
-44
View File
@@ -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
-44
View File
@@ -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
-44
View File
@@ -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
-103
View File
@@ -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
-82
View File
@@ -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
-72
View File
@@ -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
-69
View 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
-101
View 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 =
-91
View File
@@ -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
-92
View File
@@ -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
-44
View File
@@ -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
-87
View File
@@ -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
-89
View File
@@ -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
-44
View File
@@ -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
-44
View File
@@ -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
-44
View File
@@ -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
-117
View File
@@ -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
-117
View File
@@ -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
-117
View File
@@ -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
-117
View File
@@ -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
-64
View File
@@ -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
-7
View File
@@ -1,7 +0,0 @@
*.pdb
*.ncb
*.opt
*.plg
Debug
Release
Makefile
-87
View File
@@ -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
View File
@@ -1 +0,0 @@
mozilla/js/src/fdlibm
-1
View File
@@ -1 +0,0 @@
:pserver:anonymous@cvs-mirror.mozilla.org:/cvsroot
-1
View File
@@ -1 +0,0 @@
NJS_170
-127
View File
@@ -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
-192
View File
@@ -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
-147
View File
@@ -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