Makefile
changeset 0 84fdfb0344c9
equal deleted inserted replaced
-1:000000000000 0:84fdfb0344c9
       
     1 
       
     2 # TODO:
       
     3 #   clarify situation with references. should we really reference objects, passed as args to callbacks? if someone will store that object in a global environment and use later?
       
     4 #   autotools
       
     5 #   switch to common object struct?
       
     6 #   tests?
       
     7 #   more examples
       
     8 #   llm should use lua/stdlib, no dependency on glib? though it still needs glib headers... maybe, indirectly :/
       
     9 #   separate lm and glib, now it is completely different projects // and one, probably, will die... :(
       
    10 
       
    11 PREFIX=${PWD}/inst
       
    12 DOCDIR=$(PREFIX)/share/doc/liblua-loudmouth
       
    13 SOLIBDIR=$(PREFIX)/lib/lua/5.1
       
    14 LUALIBDIR=$(PREFIX)/share/lua/5.1
       
    15 
       
    16 
       
    17 CC=gcc
       
    18 LD=gcc
       
    19 LIBTOOL=libtool
       
    20 INSTALL=install
       
    21 
       
    22 CFLAGS=-g -O0 -Wall
       
    23 LDFLAGS=-g -O0
       
    24 LTFLAGS=
       
    25 TARGETS=loudmouth.la glib.la
       
    26 
       
    27 LMCFLAGS=`pkg-config --cflags lua5.1 loudmouth-1.0 glib-2.0`
       
    28 GLIBCFLAGS=`pkg-config --cflags lua5.1 glib-2.0`
       
    29 
       
    30 # add this flag to cflags, if your loudmouth have lm_connection_get_keep_alive_rate ()
       
    31 #LMCFLAGS += -DHAVE_LM_CONNECTION_GET_KEEP_ALIVE_RATE
       
    32 
       
    33 LMLIBS=`pkg-config --libs lua5.1 loudmouth-1.0 glib-2.0`
       
    34 GLIBLIBS=`pkg-config --libs lua5.1 glib-2.0`
       
    35 
       
    36 LMSOURCES=util.c lm_types.c lm_proxy.c lm_ssl.c lm_connection.c lm_message.c lm_message_node.c lm_message_handler.c lm.c
       
    37 GLIBSOURCES=glib.c glib_types.c glib_main_context.c glib_source.c glib_timeout.c util.c
       
    38 
       
    39 LMOBJECTS=$(LMSOURCES:.c=.lo)
       
    40 GLIBOBJECTS=$(GLIBSOURCES:.c=.lo)
       
    41 
       
    42 DOCS=$(TARGETS:.la=.html)
       
    43 
       
    44 all: $(TARGETS)
       
    45 
       
    46 loudmouth.la: $(LMOBJECTS)
       
    47 	$(LIBTOOL) $(LTFLAGS) --mode=link $(LD) $(LDFLAGS) -module -rpath $(SOLIBDIR) -o $@ $^ $(LMLIBS)
       
    48 
       
    49 glib.la: $(GLIBOBJECTS)
       
    50 	$(LIBTOOL) $(LTFLAGS) --mode=link $(LD) $(LDFLAGS) -module -rpath $(SOLIBDIR) -o $@ $^ $(GLIBLIBS)
       
    51 
       
    52 # FIXME: CFLAGS...
       
    53 %.lo: %.c
       
    54 	$(LIBTOOL) $(LTFLAGS) --mode=compile $(CC) $(CFLAGS) $(LMCFLAGS) -c $^
       
    55 
       
    56 test: loudmouth.la glib.la
       
    57 	cd .libs && lua ../test.lua
       
    58 
       
    59 test2: glib.la
       
    60 	cd .libs && lua ../test2.lua
       
    61 
       
    62 doc: $(DOCS)
       
    63 
       
    64 loudmouth.html: docgen.pl $(LMSOURCES)
       
    65 	./docgen.pl $(LMSOURCES) > $@
       
    66 
       
    67 glib.html: docgen.pl $(GLIBSOURCES)
       
    68 	./docgen.pl $(GLIBSOURCES) > $@
       
    69 
       
    70 install: $(TARGETS) $(SOLIBDIR) $(LUALIBDIR)
       
    71 	$(LIBTOOL) $(LTFLAGS) --mode=install $(INSTALL) loudmouth.la $(SOLIBDIR)/loudmouth.la
       
    72 	$(INSTALL) -m 644 lm.lua $(LUALIBDIR)/lm.lua
       
    73 	$(LIBTOOL) $(LTFLAGS) --mode=install $(INSTALL) glib.la $(SOLIBDIR)/glib.la
       
    74 	$(LIBTOOL) $(LTFLAGS) --mode=finish $(SOLIBDIR)
       
    75 
       
    76 install-doc: doc test.lua $(DOCDIR)
       
    77 	$(INSTALL) -m 644 -t $(DOCDIR) $(DOCS)
       
    78 	$(INSTALL) -d $(DOCDIR)/examples
       
    79 	$(INSTALL) -m 644 -t $(DOCDIR)/examples test.lua
       
    80 
       
    81 $(PREFIX):
       
    82 	$(INSTALL) -D -d $@
       
    83 
       
    84 $(DOCDIR): $(PREFIX)
       
    85 	$(INSTALL) -D -d $@
       
    86 
       
    87 $(SOLIBDIR): $(PREFIX)
       
    88 	$(INSTALL) -D -d $@
       
    89 
       
    90 $(LUALIBDIR): $(PREFIX)
       
    91 	$(INSTALL) -D -d $@
       
    92 
       
    93 uninstall:
       
    94 	$(LIBTOOL) $(LTFLAGS) --mode=uninstall rm -f $(SOLIBDIR)/loudmouth.la
       
    95 	$(LIBTOOL) $(LTFLAGS) --mode=uninstall rm -f $(SOLIBDIR)/glib.la
       
    96 	rm -f $(LUALIBDIR)/lm.lua
       
    97 
       
    98 clean:
       
    99 	$(LIBTOOL) $(LTFLAGS) --mode=clean rm -f $(TARGETS) $(LMOBJECTS) $(GLIBOBJECTS) $(DOCS)
       
   100