aboutsummaryrefslogtreecommitdiffhomepage
path: root/configure.ac
AgeCommit message (Collapse)AuthorFilesLines
2016-02-11pass user/maintainer provided CXXFLAGS to the Scintilla build processRobin Haberkorn1-0/+8
* Usually, Scintilla will now be built with -O2 * this can improve performance significantly over the standard Scintilla -Os (up to 10%). * this also allows link-time-optimizing both Scintilla and SciTECO (which are linked statically) by adding -flto to CFLAGS, CXXFLAGS and LDFLAGS. Link-time-optimization will both reduce the total binary size and improve performance slightly since scintilla_send_message() can be inlined. An -O3 optimized Scintilla when linked with LTO results in an only 300kb larger SciTECO binary. * the highest possible optimization thus requires the following maintainer flags on the ./configure command line: CFLAGS="-O3 -mtune=native -march=native -flto" CXXFLAGS="-O3 -mtune=native -march=native -flto" LDFLAGS="-flto" * Windows and Debian builds use link-time-optimization now. On Windows - where we link in everything statically - building the dependant libraries with -flto could improve performance even more. * Debian builds respect the default hardening flags of the build server now. This should ensure that SciTECO is built for the correct architecture at the recommended optimization level etc.
2016-01-31interfaces have their own automake subdirectories and convenience libraries nowRobin Haberkorn1-4/+16
* use libtool convenience libraries as much as possible (for all static libraries except Scintilla) * improves separation of language and user interface implementations (e.g. the Gtk widgets are not interesting for the rest of SciTECO) * the Curses popup widget can now be factored out of interface-curses.cpp * some common CPPFLAGS are now defined by ./configure via AM_CPPFLAGS, so they don't have to be repeated in each submodule. * fixed building the Curses UI: GTK_FLOW_BOX_FALLBACK conditional must always be defined.
2016-01-31updated to Gtk+ 3 and revamped the Gtk interface's popup widgetRobin Haberkorn1-3/+14
* depend on Gtk+ 3.10. If necessary older versions should also be supportable. GtkOverlay was already introduced in v3.2 * A fallback for GtkFlowBox is compiled in if the Gtk installation is too old. This applies even to Ubuntu 14.04 which still runs Gtk v3.10. * the threading the Gtk UI is left as it is for the time being even though the synchronization mechanism has been deprecated. Alternative approaches have to be tried out and benchmarked. * Completely revamped the GtkInfoPopup widget. It is now as powerful as the Curses UI's popup widget. * A GtkOverlay is used instead of the top-level window hack in the Gtk2 version. * GtkFlowBox is used to lay out the columns of the popup. * I had to work around restrictions of GtkScrolledWindow by writing my own poor-mans scrolled window which handles size requests correctly. * The popup window no longer overflows the screen size, instead we scroll. * Scrolling pagewise is finally supported. Wraps at the end of a list just like the Curses UI. * Instead of using only two stock icons, we now use GIO to get file and directory icons for the current theme. This looks even better. * The GtkFlowBox allows selections which can be used for mouse interaction later. But this is not yet implemented. * Theming of the popup widget and command line is still not performed correctly.
2015-07-28added full Haiku OS support (non x86_gcc2)Robin Haberkorn1-1/+2
* Haiku can be handled like UNIX in most respects since it is POSIX compliant, has a UNIX-like terminal emulator and uses ncurses. * still the Glib platform macro is G_OS_HAIKU instead of G_OS_UNIX, so the preprocessor conditionals had to be adapted. * the only functional difference between a Haiku and UNIX build is the default SCITECOCONFIG path. We use the config path returned by Glib instead of $HOME, so .teco_ini will be in ~/config/settings on Haiku. Other UNIX ports appear to use the same conventions. * Some Haiku-specific restrictions still apply: * Haiku's terminal is xterm-compatible, but only supports 8 colors. Therefore only the terminal.tes color scheme can be used and the terminal must be set up to "Use bright instead of bold text". * The terminal has artifacts. This appears to be a Haiku bug and affects other curses applications as well. * GTK is yet unsupported on Haiku, so there may never be a GUI port (unless someone writes a QT GUI for SciTECO). * SciTECO cannot be built with the legacy gcc2 used for BeOS compatibility on Haiku. This would require too many changes for an obsolete platform. BeOS and the x86_gcc2 platform of Haiku will therefore never be supported. The PPC and ARM platforms of Haiku should work but are untested. * a HaikuPorts recipe will be provided for the next regular SciTECO release. This should hopefully allow installation via HaikuDepot.
2015-06-22added XCurses supportRobin Haberkorn1-1/+33
* enabled via --with-interface=xcurses, so we can configure it automatically via xcurses-config. This also adds XCURSES_CFLAGS and XCURSES_LIBS. * The X11 window class name is set to "SciTECO". X11 resource overrides can currently not be set via sciteco's command line. The user may use .Xdefaults though. * interruptions via CTRL+C are currently not supported. Apparently, XCurses also does send SIGINT in cbreak() mode. An XCurses-specific hack would be cumbersome. * ~InterfaceCurses() should probably be rewritten. Curses cleanup should be completely in restore_batch() as the destructor may be called after Curses-cleanup handlers. E.g. isendwin() SEGFAULTs on XCurses when called from the destructor.
2015-06-22pass curses CFLAGS into Scinterm build systemRobin Haberkorn1-6/+24
* requires a recent patch to Scinterm * can be overwritten in SciTECO's build system via NCURSES_CFLAGS or PDCURSES_CFLAGS. * NCURSES_LIBS has also been introduced. The check for ncurses will now use pkg-config if available. * eases multiple builds with different Curses variants (e.g. when cross-compiling for Windows) * pass more toolchain variables into Scintilla build process (CC and RANLIB). This should fix Cross-compiling Scintilla/Gtk * Pass GTK cflags into Scintilla/Gtk build system.
2015-03-18bumped release version to v0.6.4, updated ChangeLog and clarify libglib ↵Robin Haberkorn1-2/+2
minimum version * it was necessary to increase the upstream version so I could upload new versions to launchpad while debugging PPA build issues. * ChangeLog finalized for v0.6.4 * SciTECO requires at least libglib v2.28 (but that's only a guess)
2015-03-17added PDCURSES_LIBS ./configure variable to overwrite the check for PDCursesRobin Haberkorn1-11/+13
* allows us to link against PDCurses/win32a statically. It requires additional Windows DLLs (gdi32 and comdlg32) and since there's no PDCurses configuration mechanism, it is easiest to set the PDCurses linker flags using a PDCURSES_LIBS env variable. * This is only possible since Scintilla links statically, we do the linking of the binary and can provide the linker flags. It is still not possible to overwrite the CFLAGS used for PDCurses without modifying the Scinterm Makefile. * Using PDCURSES_LIBS we can get rid of --with-interface=emcurses since if library checks fail with EMscripten, we can simply define PDCURSES_LIBS="-lpdcurses"
2015-03-16removed check for glibc-compatible malloc and reallocRobin Haberkorn1-2/+0
the MSVCRT versions are not glibc-compatible and we do not actually need glibc compatible versions, as all allocations are done through the libglib wrappers.
2015-03-16implemented automatic EOL translation supportRobin Haberkorn1-3/+11
* activated via bit 4 of the ED flag (enabled by default) * automatic EOL guessing on file loading and translation to LFs. * works with files that have inconsistent EOL sequences. * automatic translation to original EOL sequences on file saving * works with inconsistent EOL sequences in the buffer. This should usually not happen if the file was read in with automatic EOL translation enabled. * also works with the EC and EG commands * performance is OK, depending on the file being translated. When reading files with UNIX EOLs, the overhead is minimal typically-sized files. For DOS EOLs the overhead is larger but still acceptable. * Return (line feed) is now an immediate editing command. This centralizes EOL sequence insertion. Later, other features like auto-indent could be added to the editing command. * get_eol() has been moved to main.cpp (now called get_eol_seq() * Warn if file ownership could not be preserved when saving files. * IOView has been almost completely rewritten based on GIOChannels. The EOL translation code is also in IOView.
2015-03-16also set window title on ncurses, by querying terminfo capabilitiesRobin Haberkorn1-0/+1
2015-03-10added SciTECO icon and compile it into Windows binariesRobin Haberkorn1-0/+12
* sciteco.ico contains a 16 color 16px, a 255 color 32px and a true color 48px version of the icon. The first ones are good for legacy Windows versions like 2000, while the latter one should be preferred by Windows >= 7. * Also added the 48px version as a PNG for Linux. But it is not installed currently, as there is no standardized place for it and it wouldn't do much good in /usr/share/sciteco.
2015-03-10added ./configure --enable-static-executables optionRobin Haberkorn1-0/+14
* This adds the -all-static libtool option and can be used to link a static sciteco binary (or at least link in as few as possible dynamic libraries) * Esp. useful on MinGW to link in all dependant libraries (glib, libintl, libiconv, libpdcurses, ...) statically. A static .exe is much smaller than a dynamically linked plus all the DLLs and is easier to relocate. * This does not guarantee that ALL libraries are linked in dynamically. E.g. on MinGW, the sciteco.exe will still link to MSVCRT and the Windows system DLLs, but they already ship with Windows. * On MinGW, even a static build will still require the gspawn-win32-helper-console.exe which is used by glib to implement g_spawn with redirection. We cannot get around that. * It would be better to let this be decided by the package builder using the standard env variables like LDFLAGS. However, this does not seem to work well with libtool. It IS possible to define LDFLAGS="-all-static" when calling make but this approach sucks.
2015-03-09improved error message when libpdcurses is not foundRobin Haberkorn1-1/+2
* PDCurses build system produces static libraries that cannot be found by Autoconf (pdcurses.a) and often files have the wrong permissions.
2015-03-07improved --help output and introduced PACKAGE_URL_DEV (for development home)Robin Haberkorn1-0/+4
* The PACKAGE_URL_DEV is also mentioned in --help output and sciteco(1)
2015-03-03define -DCURSES instead of -DNCURSESRobin Haberkorn1-1/+1
* has been changed in Scinterm some time ago * I don't know if defining this makes actually any difference, but Jinx does it.
2015-03-02try hard to free heap memory after command-line termination using malloc_trim()Robin Haberkorn1-0/+5
* this is a Linux/glibc-only optimization
2014-11-24introduced $SCITECOCONFIG env variable, and set different default for ↵Robin Haberkorn1-7/+0
$SCITECOPATH on Windows * $SCITECOCONFIG has been introduced, so have a macro-accessible location for the profile, buffer session etc. This is set to the program dir on Windows. That way, the config files will be found, regardless of the current working dir, but it may also be set up for Unix-like environments on Windows. * $SCITECOPATH defaults to the program dir + "/lib" now on Windows. * The default profile is now always called ".teco_ini". Also on Windows. Platform differences like this would need to be documented. * The sample teco.ini has been renamed to "sample.teco_ini" for clarity
2014-11-17renamed the "NCurses" UI to "Curses" internallyRobin Haberkorn1-1/+1
* does not change ./configure parameters You still have to specifiy --with-interface=ncurses for the Curses interface with default settings * the "NCurses" UI was used for many different Curses variants, so plain "Curses" is a better name.
2014-11-16enable bootstrapping by defaultRobin Haberkorn1-6/+7
The SciTECO language changes often and the build system scripts are adapted accordingly. If bootstrapping is disabled by default on systems that already have SciTECO, building recent Git versions will fail often due to macro errors. This is not easy to see and correct for users. Also the build-time overhead for `sciteco-minimal` is minimal. The --disable-bootstrap option is mostly useful when cross-compiling SciTECO.
2014-08-22automatically build Scintilla as part of SciTECO's build system:Robin Haberkorn1-2/+6
this should simplify building SciTECO for new users * compiler and archiver are passed down from Autoconf, so cross-compiling should work transparently * `make clean` will also clean the Scintilla source tree * there is no longer any need for "source bundles" as tar balls also contain Scintilla/Scinterm now * building from Git is not much more difficult than building from a tar ball * The versions of Scintilla/Scinterm embedded as submodules already contain all the patches necessary (currently none are necessary), so there's no need to have patch files in the repository * INSTALL instructions have been rewritten * the --with-scintilla and --with-scinterm site-config options have been kept. But they should be rarely necessary now.
2014-02-17mention sciteco.sf.net as the project's homepageRobin Haberkorn1-1/+1
2014-02-16treat Emscripten's em++ like ClangRobin Haberkorn1-1/+2
2014-02-16prepare new target release v0.6Robin Haberkorn1-1/+1
2014-02-15added EMCurses/Emscripten supportRobin Haberkorn1-1/+7
by building with Emscripten support, SciTECO may be embedded into web pages. * sciteco.html is not a piece of documentation but a sample SciTECO embedding
2013-07-09fixed compilation of the GTK+ interfaceRobin Haberkorn1-1/+1
* there was a compile-time race condition that could result in the GObjects not being built (with Gob2). So I removed the symbols generation from BUILT_SOURCES. * apparently either Scintilla depends on gmodule since I last tested or the gtk+-2.0 pkg-config package no longer includes gmodule, so we must explicitly depend on it
2013-03-20updated version to 0.5Robin Haberkorn1-1/+1
2013-03-20replace GNU readlink dependency with custom canonicalize() shell functionRobin Haberkorn1-9/+10
* some build environments (like XCode) do not have a GNU readlink by default
2013-03-20default Scintilla-path is ../scintillaRobin Haberkorn1-2/+2
so no additional --with-scintilla is necessary when building from a source bundle
2013-03-18add check for CLang: use clang-specific warnings only when compiling with CLangRobin Haberkorn1-0/+3
* fixes gcc-4.4 which does not have -Wno-mismatched-tags and no -Wunknown-warning
2013-03-16add links to Github pagesRobin Haberkorn1-1/+1
2013-03-16manual chapters: Expressions, Command Syntax, Q-RegistersRobin Haberkorn1-0/+1
2013-03-16added option to build manuals as HTML using GroffRobin Haberkorn1-0/+13
* will be useful for Windows builds since Windows users usally do not have a man-page formatter/reader
2013-02-25integrate Doxygen into build systemRobin Haberkorn1-2/+20
* solely for generating developer docs * disabled by default even if Doxygen is installed * Doxygen comments are not used currently
2013-02-22use typedef for SciTECO integers and make it configurable at configure timeRobin Haberkorn1-0/+6
* storage size should always be 64 (gint64) to aid macro portability * however, for performance reasons users compiling from source might explicitly compile with 32 bit integers
2013-02-22added --with-default-scitecopath config option: default value of $SCITECOPATHRobin Haberkorn1-3/+10
useful for Windows where the desired default path does not correspond with the installation dir of the std lib macros
2013-02-22added --with-scinterm site-config option and cleaned up Curses configurationRobin Haberkorn1-21/+23
may be used to have multiple scinterm-versions in the Scintilla source tree
2013-02-22VPATH build fixes: SciTECO can now be built from a parallel source treeRobin Haberkorn1-2/+1
...which is useful when crosscompiling for MinGW
2013-02-22clean up SciTECO bootstrapping by building convenience libraryRobin Haberkorn1-3/+3
* pkg-config LIBS should be added to $LIBS so that link order is correct
2013-02-15install standard macros into special standard library path (pkgdatadir/lib)Robin Haberkorn1-1/+6
* SCITECOPATH environment variable defaults to this directory * manpage updated * default teco.ini updated: no need to generate it anymore
2013-02-01perform additional expansions on explicitly-specified Scintilla pathsRobin Haberkorn1-1/+3
a common ./configure parameter would be --with-scintilla=~/scintilla. however the calling shell will not expand tilde and the invoked shell will not automatically fully expand variables.
2013-01-31fixed bootstrapping using sciteco-minimal and bootstrap autodetectionRobin Haberkorn1-1/+1
was broken due to untested changes
2013-01-27moved manpage to doc/ subdirRobin Haberkorn1-1/+1
later there will be much more documentation
2013-01-23generate manpage sciteco(1) using a TECO macro included in the MakefileRobin Haberkorn1-5/+5
allows including the currently chosen PREFIX * also removed sciteco_datadir variable (pkgdatadir defined by Automake is sufficient)
2013-01-20added manpage highlighting program invocation and batch modeRobin Haberkorn1-0/+1
language and commands will be described in separate documents
2012-12-04bootstrapping of build process using preinstalled scitecoRobin Haberkorn1-1/+12
* will also enable crosscompiling SciTECO: first sciteco (or sciteco-minimal) is built for the host platform, then the target binary is built using the host sciteco
2012-12-04additional minor changes: distribution building now possibleRobin Haberkorn1-5/+7
2012-12-04first working version of autotools based build-systemRobin Haberkorn1-0/+142