strealine the getting started guide to have simpler autofoo.

SVN revision: 62286
This commit is contained in:
Carsten Haitzler 2011-08-10 05:48:09 +00:00
parent ea62544b88
commit 3c6ec42179
1 changed files with 17 additions and 124 deletions

View File

@ -52,7 +52,6 @@ organisations behind this, as listed in the @ref authors page.
*
* @code
* #include <Elementary.h>
* #ifndef ELM_LIB_QUICKLAUNCH
* EAPI int
* elm_main(int argc, char **argv)
* {
@ -61,86 +60,51 @@ organisations behind this, as listed in the @ref authors page.
* elm_shutdown(); // after mainloop finishes running, shutdown
* return 0; // exit 0 for exit code
* }
* #endif
* ELM_MAIN()
* @endcode
*
* To take full advantage of the quicklaunch architecture for launching
* processes as quickly as possible (saving time at startup time like
* connecting to X11, loading and linking shared libraries) you may want to
* use the following configure.in/configure.ac and Makefile.am and autogen.sh
* script to generate your files. It is assumed your application uses the
* main.c file for its code.
* To use autotools (which helps in many ways in the long run, like being able
* to immediately create releases of your software directly from your tree
* and ensure everything needed to buiuld it is there) you will need a
* configure.ac, Makefile.am and autogen.sh file.
*
* configure.in/configure.ac:
* configure.ac:
*
@verbatim
AC_INIT(myapp, 0.0.0, myname@mydomain.com)
AC_PREREQ(2.52)
AC_CONFIG_SRCDIR(configure.in)
AM_INIT_AUTOMAKE(1.6 dist-bzip2)
AC_CONFIG_SRCDIR(configure.ac)
AM_CONFIG_HEADER(config.h)
AC_C_BIGENDIAN
AC_ISC_POSIX
AC_PROG_CC
AM_PROG_CC_STDC
AC_HEADER_STDC
AC_C_CONST
AC_LIBTOOL_WIN32_DLL
define([AC_LIBTOOL_LANG_CXX_CONFIG], [:])dnl
define([AC_LIBTOOL_LANG_F77_CONFIG], [:])dnl
AC_PROG_LIBTOOL
AM_INIT_AUTOMAKE(1.6 dist-bzip2)
PKG_CHECK_MODULES([ELEMENTARY], elementary)
AC_OUTPUT(Makefile)
@endverbatim
*
* Makefile.am:
*
@verbatim
AUTOMAKE_OPTIONS = 1.4 foreign
MAINTAINERCLEANFILES = Makefile.in
AUTOMAKE_OPTIONS = 1.4 foreign
MAINTAINERCLEANFILES = Makefile.in aclocal.m4 config.h.in configure depcomp install-sh missing
INCLUDES = -I$(top_srcdir) @ELEMENTARY_CFLAGS@
INCLUDES = -I$(top_srcdir)
bin_PROGRAMS = myapp
myapp_LTLIBRARIES = myapp.la
myappdir = $(libdir)
myapp_la_SOURCES = main.c
myapp_la_LIBADD = @ELEMENTARY_LIBS@
myapp_la_CFLAGS =
myapp_la_LDFLAGS = -module -avoid-version -no-undefined
bin_PROGRAMS = myapp
myapp_SOURCES = main.c
myapp_LDADD = @ELEMENTARY_LIBS@
myapp_CFLAGS = -DELM_LIB_QUICKLAUNCH=1
myapp_CFLAGS = @ELEMENTARY_CFLAGS@
@endverbatim
*
* autogen.sh:
*
@verbatim
#!/bin/sh
rm -rf autom4te.cache
rm -f aclocal.m4 ltmain.sh
rm -rf m4
mkdir m4
touch README
echo "Running aclocal..." ; aclocal $ACLOCAL_FLAGS -I m4 || exit 1
echo "Running aclocal..." ; aclocal $ACLOCAL_FLAGS || exit 1
echo "Running autoheader..." ; autoheader || exit 1
echo "Running autoconf..." ; autoconf || exit 1
echo "Running libtoolize..." ; (libtoolize --copy --automake || glibtoolize --automake) || exit 1
echo "Running automake..." ; automake --add-missing --copy --gnu || exit 1
if [ -z "$NOCONFIGURE" ]; then
./configure "$@"
fi
./configure "$@"
@endverbatim
*
* To generate all the things needed to bootstrap just run:
@ -209,80 +173,9 @@ make maintainer-clean
* This deletes all the files autogen.sh will produce so the tree is clean
* to be put into a revision-control system (like CVS, SVN or GIT for example).
*
* The above will build a library - libmyapp.so and install in the target
* library directory (default is /usr/local/lib). You will also get a
* myapp.a and myapp.la - these are useless and can be deleted. Libtool likes
* to generate these all the time. You will also get a binary in the target
* binary directory (default is /usr/local/bin). This is a "debug binary".
* This will run and dlopen() the myapp.so and then jump to it's elm_main
* function. This allows for easy debugging with GDB and Valgrind. When you
* are ready to go to production do the following:
*
* 1. delete the myapp binary. i.e. rm /usr/local/bin/myapp
*
* 2. symlink the myapp binary to elementary_run (supplied by elementary).
* i.e. ln -s elmentary_run /usr/local/bin/myapp
*
* 3. run elementary_quicklaunch as part of your graphical login session and
* keep it running.
*
* This will man elementary_quicklaunch does pre-initialization before the
* application needs to be run, saving the effort at the time the application
* is needed, thus speeding up the time it takes to appear.
*
* If you don't want to use the quicklaunch infrastructure (which is
* optional), you can execute the old fashioned way by just running the
* myapp binary loader than will load the myapp.so for you, or you can
* remove the split-file binary and put it into one binary as things always
* have been with the following configure.in/configure.ac and Makfile.am
* files:
*
* configure.in/configure.ac:
*
@verbatim
AC_INIT(myapp, 0.0.0, myname@mydomain.com)
AC_PREREQ(2.52)
AC_CONFIG_SRCDIR(configure.in)
AM_INIT_AUTOMAKE(1.6 dist-bzip2)
AM_CONFIG_HEADER(config.h)
AC_C_BIGENDIAN
AC_ISC_POSIX
AC_PROG_CC
AM_PROG_CC_STDC
AC_HEADER_STDC
AC_C_CONST
PKG_CHECK_MODULES([ELEMENTARY], elementary)
AC_OUTPUT(Makefile)
@endverbatim
*
* Makefile.am:
*
@verbatim
AUTOMAKE_OPTIONS = 1.4 foreign
MAINTAINERCLEANFILES = Makefile.in
INCLUDES = -I$(top_srcdir) @ELEMENTARY_CFLAGS@
bin_PROGRAMS = myapp
myapp_SOURCES = main.c
myapp_LDADD = @ELEMENTARY_LIBS@
myapp_CFLAGS =
@endverbatim
*
* Notice that they are the same as before, just with libtool and library
* building sections removed. Both ways work for building elementary
* applications. It is up to you to decide what is best for you. If you just
* follow the template above, you can do it both ways and can decide at build
* time. The more advanced of you may suggest making it a configure option.
* That is perfectly valid, but has been left out here for simplicity, as our
* aim to have an Elementary (and EFL) tutorial, not an autoconf & automake
* document.
*
* There is a more advanced way of making use of the quicklaunch infrastructure
* in Elementary (which will not be covered here due to its more advanced
* nature).
*/
/**