Christian Seiler: Heureka - ich habe es kompiliert!

Beitrag lesen

Hallo Christian,

Ungern. Ich mag autoconf/autoheader nicht sonderlich.

Warum nicht?

http://www.geocities.com/SiliconValley/Vista/6493/projects/cgi-lib.html

Inzwischen auch schon herausgefunden. ;)
Zuerst hab' ich die aus Debian genommen, aber die hatte einige Funktionen nicht. Dann hab' ich einfach mal nach cgi-lib.h mit Google gesucht und das kam als erster Treffer.

Folgendes: ich habe es fertig gebracht, das Ding zu kompilieren. (Debian 3.0 Woody)

Hier ist der "Patch": (erstaunlicherweise wirklich nur Makefile + eine Source-Datei, s.u.)

--------------------------------------------------------------------------------------------------------------------------------------------
diff -ru cforum-1.0/Makefile cforum-1.0linux/Makefile
--- cforum-1.0/Makefile Wed Nov  6 02:55:27 2002
+++ cforum-1.0linux/Makefile Fri Nov  8 23:49:15 2002
@@ -69,16 +69,16 @@

LIBDIR=pwd/cgi-shared/lib
 CC=gcc
-CCFLAGS=-Wall -g -pipe
+CCFLAGS=-Wall -g -pipe -D_GNU_SOURCE
 #CCFLAGS=-Wall -march=i686 -O3 -fomit-frame-pointer
 EFENCE?=
 DEBUG?=-DDEBUG
-LIBS=-ltemplate -lconfigparser -lclientlib
+LIBS=-ltemplate -lconfigparser -lclientlib -ldl
 LINKOPTS=-L/usr/local/lib -L$(LIBDIR) -Wl,-rpath $(LIBDIR)
 RM?=/bin/rm
 LN?=/bin/ln
 COMPILE=$(CC) $(DEBUG) $(CCFLAGS)
-CGILIB=/usr/local/lib/libcgi.a
+CGILIB=/usr/local/lib/cgi-lib.a

CCFLAGS_TPL=src/template.c src/utils.c -I- -Isrc/
 TEMPLATE=pwd/template_gen.pl
@@ -89,26 +89,26 @@
 all: libs modules server view post templates userconf

server:

  • $(COMPILE) -pthread -c src/initfinish.c gdome-config --cflags
  • $(COMPILE) -pthread -c src/charconvert.c -I/usr/local/include
  • $(COMPILE) -pthread -c src/xml_handling.c gdome-config --cflags
  • $(COMPILE) -pthread -c src/readline.c
  • $(COMPILE) -pthread -c src/utils.c
  • $(COMPILE) -pthread -c src/fo_server.c gdome-config --cflags
  • $(COMPILE) -pthread -o cgi-bin/fo_server fo_server.o utils.o initfinish.o charconvert.o xml_handling.o readline.o $(EFENCE) gdome-config --libs -Lcgi-shared/lib/ -lserverlib -lconfigparser $(LINKOPTS)
  • $(COMPILE) -lpthread -c src/initfinish.c gdome-config --cflags
  • $(COMPILE) -lpthread -c src/charconvert.c -I/usr/local/include
  • $(COMPILE) -lpthread -c src/xml_handling.c gdome-config --cflags
  • $(COMPILE) -lpthread -c src/readline.c
  • $(COMPILE) -lpthread -c src/utils.c
  • $(COMPILE) -lpthread -c src/fo_server.c gdome-config --cflags
  • $(COMPILE) -lpthread -o cgi-bin/fo_server fo_server.o utils.o initfinish.o charconvert.o xml_handling.o readline.o $(EFENCE) gdome-config --libs -Lcgi-shared/lib/ -lserverlib -lconfigparser -ldl $(LINKOPTS)

view:
  $(COMPILE) -c src/charconvert.c -I/usr/local/include
  $(COMPILE) -c src/utils.c
  $(COMPILE) -c src/fo_view.c -I/usr/local/include

  • $(COMPILE) -o cgi-bin/fo_view fo_view.o utils.o charconvert.o $(CGILIB) $(LIBS) $(LINKOPTS) -liconv
  • $(COMPILE) -o cgi-bin/fo_view fo_view.o utils.o charconvert.o $(CGILIB) $(LIBS) $(LINKOPTS) -ldl
      $(LN) -fs pwd/cgi-bin/fo_view pwd/cgi-bin/user/

post:
 # $(COMPILE) -c src/charconvert.c -I/usr/local/include
 # $(COMPILE) -c src/utils.c
 # $(COMPILE) -c src/fo_post.c -I/usr/local/include
-# $(COMPILE) -o cgi-bin/fo_post fo_post.o utils.o charconvert.o $(CGILIB) $(LIBS) $(LINKOPTS) -liconv $(EFENCE)
+# $(COMPILE) -o cgi-bin/fo_post fo_post.o utils.o charconvert.o $(CGILIB) $(LIBS) $(LINKOPTS) -ldl $(EFENCE)
  $(LN) -fs pwd/cgi-bin/fo_post pwd/cgi-bin/user/

userconf:
@@ -133,8 +133,8 @@
  $(COMPILE) -shared -o cgi-shared/modules/flt_http.so src/modules/flt_http.c $(CGILIB) -Isrc/ -I- -I/usr/local/include

libs:

  • $(COMPILE) -pthread -shared -o cgi-shared/lib/libconfigparser.so src/configparser.c
  • $(COMPILE) -pthread -shared -o cgi-shared/lib/libserverlib.so src/serverlib.c src/utils.c gdome-config --cflags
  • $(COMPILE) -lpthread -shared -o cgi-shared/lib/libconfigparser.so src/configparser.c
  • $(COMPILE) -lpthread -shared -o cgi-shared/lib/libserverlib.so src/serverlib.c src/utils.c gdome-config --cflags
      $(COMPILE) -shared -o cgi-shared/lib/libclientlib.so src/clientlib.c src/utils.c $(CGILIB) -I/usr/local/include
      $(COMPILE) -shared -o cgi-shared/lib/libtemplate.so  src/template.c src/utils.c src/readline.c

diff -ru cforum-1.0/src/charconvert.c cforum-1.0linux/src/charconvert.c
--- cforum-1.0/src/charconvert.c Wed Nov  6 02:55:24 2002
+++ cforum-1.0linux/src/charconvert.c Fri Nov  8 23:48:43 2002
@@ -19,6 +19,7 @@
  *
  */

+#include <errno.h>
 #include <stdlib.h>
 #include <iconv.h>
 #include <string.h>
@@ -53,7 +54,7 @@
   out_p    = out_buf;

while(in_left > 0) {
-    result = iconv(cd,(const char **)&toencode,&in_left,(char **)&out_p,&out_left);
+    result = iconv(cd,(char **)&toencode,&in_left,(char **)&out_p,&out_left);
     out_size = bsz - out_left;
     if(result == (size_t)(-1)) {
       if(errno == E2BIG && in_left > 0) {
@@ -117,7 +118,7 @@
   out_p    = out_buf;

while(in_left > 0) {
-    result = iconv(cd,(const char **)&toencode,&in_left,(char **)&out_p,&out_left);
+    result = iconv(cd,(char **)&toencode,&in_left,(char **)&out_p,&out_left);
     out_size = bsz - out_left;
     if(result == (size_t)(-1)) {
       if(errno == E2BIG && in_left > 0) {

--------------------------------------------------------------------------------------------------------------------------------------------

Folgende Anmerkungen: -liconv brauche ich unter Debian nicht, das ist anscheinend bei der Libc6 dabei. Dafür musste ich mit -ldl linken.

In der charconvert.c hat sich der gcc darüber beschwert, das

a) errno.h nicht eingebunden war (und er daher errno und E2BIG nicht kannte)
b) (const char **) nicht mochte und auf einem (char **) bestand

Und jetzt mal eine ganze DAU-mäßige Frage *duck*: Jetzt hab' ich das Teil kompiliert - wie "installiere" ich das denn nun?

Grüße,

Christian

--
Sollen sich alle schämen, die gedankenlos sich der Wunder der Wissenschaft und Technik bedienen und nicht mehr davon erfasst haben als eine Kuh von der Botanik der Pflanzen, die sie mit Wohlbehagen frisst.
                      -- Albert Einstein
0 46

ein Link - zwei Targets

Thomas Förster
  • html
  1. 0
    Sven Schrodt
  2. 0
    Tobias
  3. 0

    Steinigung fällt aus?

    stefan
    • menschelei
    1. 0

      Schonfrist für Jehova-Sager bis zum Posting-Assistenten

      Christian Seiler
      1. 0
        Andreas Schneider
        1. 0
          Christian Seiler
          1. 0
            Andreas Schneider
          2. 0
            Christian Kruse
          3. 0
            Andreas Schneider
            1. 0
              Christian Seiler
              1. 0
                Andreas Schneider
                1. 0
                  Christian Seiler
                  1. 0
                    Andreas Schneider
                    1. 0
                      Andreas Schneider
                      1. 0
                        Christian Seiler
                        1. 0
                          Andreas Schneider
              2. 0
                Christian Kruse
                1. 0
                  Christian Seiler
                  1. 0
                    Christian Seiler
                    1. 0
                      Christian Kruse
                      1. 0

                        Heureka - ich habe es kompiliert!

                        Christian Seiler
                        • zu diesem forum
                        1. 0
                          Christian Seiler
                        2. 0
                          Christian Kruse
                          1. 0
                            Christian Seiler
                            1. 0
                              Christian Kruse
                              1. 0
                                Christian Seiler
                                1. 0
                                  Christian Kruse
                                  1. 0
                                    Christian Seiler
                                    1. 0
                                      Christian Seiler
                                      1. 0
                                        Christian Seiler
                                        1. 0
                                          Christian Seiler
                                          1. 0
                                            Christian Kruse
                                            1. 0
                                              Christian Seiler
                                              1. 0
                                                Christian Kruse
                                                1. 0
                                                  Christian Seiler
                                                  1. 0
                                                    Christian Kruse
                                                    1. 0
                                                      Christian Seiler
                                                      1. 0
                                                        Christian Kruse
                                                        1. 0
                                                          Christian Seiler
                                                          1. 0
                                                            Christian Kruse
                                                            1. 0
                                                              Christian Seiler
                                                              1. 0
                                                                Christian Seiler
        2. 0
          Christoph Schnauß
      2. 0
        stefan
        1. 0
          Christian Seiler