Hi gurus, I made a sample apache module, mod_test, by "/usr/local/apache/bin/apxs -g -n test". Now I want to make the mod_test call the following source ( actually, an add_test function ).
----------- my_test.h ------------ #ifndef _MY_TEST_H #define _MY_TEST_H 1 int add_test(int a, int b); #endif ---------------------------------------- ------------ my_test.c ----------- #include "my_test.h" int add_test(int a, int b){ return (a+b); } ---------------------------------------- I've added #include "my_test.h" in mod_test.c and also add_test(10,20) in the test_handler function as follows. /* The sample content handler */ static int test_handler(request_rec *r) { if (strcmp(r->handler, "test")) { return DECLINED; } r->content_type = "text/html"; printf("test_handler is called\n"); if (!r->header_only){ ap_rputs("The sample page from mod_test.c\n", r); printf("%d\n", add_test(10,20)); // <--- HERE !!! } return OK; } and compiled and installed as follows ( I've added LoadModule, SetHandler in httpd.conf ) $ make $ make install run apache as debug mode $ /usr/local/apache/bin/httpd -X Then, I get the following error. httpd: Syntax error on line 100 of /usr/local/apache/conf/httpd.conf: Cannot load /usr/local/apache/modules/mod_test.so into server: /usr/local/apache/modules/mod_test.so: undefined symbol: add_test Of course, I get the error since I haven't modified Makefile at all. Now, my question is how Makefile should be modified ??? ------------------------------------- # the used tools APXS=apxs APACHECTL=apachectl # additional defines, includes and libraries #DEFS=-Dmy_define=my_value #INCLUDES=-Imy/include/dir #LIBS=-Lmy/lib/dir -lmylib # the default target all: local-shared-build # install the shared object file into Apache install: install-modules-yes # cleanup clean: -rm -f mod_test.o mod_test.lo mod_test.slo mod_test.la ------------------------------------- I'm stuck over 8 hours... I couldn't find any sites describing this kinda situation. I'm really new to Makefile but no time to learn Makefile from a scratch right now.... :( Please please please help me out... thanks in advance. wolfgang