0

I've download LEDA link

but when I do make install ther is a problem: directory incl/LEDA/INCLUDE does not exist.

This is the makefile

    SHELL=/bin/sh

cc = $(shell basename $(CURDIR))
sys = $(shell cmd/leda.sys)
instdir = /LEDA/INSTALL/$(sys)/$(cc)

default: lib

kernel:
    ./kernel_config
    $(MAKE) lib xlman

all: lib tests

install: FORCE
    cp -r -L incl /LEDA/INSTALL/$(sys)
    if [ -f leda.lib   ]; then cp leda.lib $(instdir); fi
    if [ -f leda.dll   ]; then cp leda.dll $(instdir); fi
    if [ -f libleda.a  ]; then cp libleda.a $(instdir); fi
    if [ -f libleda.so ]; then cp libleda.so $(instdir); fi

FORCE: lib

#------------------------------------------------------------------------------
# libraries
#------------------------------------------------------------------------------

lib: .license
    @if [ -f .license -a -d src  ]; then $(MAKE) -C src;      fi
    @if [ -f .license -a -d src1 ]; then $(MAKE) -C src1;     fi
    @if [ -f .license -a -f closelib  ]; then ./closelib;     fi
    @if [ -f .license -a -f static.mk ]; then $(MAKE) static; fi
    @if [ -f .license -a -f shared.mk ]; then $(MAKE) shared; fi

touch: 
    @if [ -f .license -a -d src  ]; then $(MAKE) -C src   touch; fi
    @if [ -f .license -a -d src1 ]; then $(MAKE) -C src1  touch; fi
    @if [ -f .license -a -f static.mk ]; then $(MAKE) static; fi
    @if [ -f .license -a -f shared.mk ]; then $(MAKE) shared; fi

nogui: .license
    mv libleda.a libleda.a.gui
    mv libleda.so libleda.so.gui
    mv src/graphics src/graphics_
    mv src1/graphics src1/graphics_
    $(MAKE) touch
    mv src/graphics_ src/graphics
    mv src1/graphics_ src1/graphics
    mv libleda.a libleda.so no_gui
    mv libleda.a.gui libleda.a
    mv libleda.so.gui libleda.so

gui: .license
    $(MAKE) touch


lib0: .license
    @if [ -f .license -a -d src  ]; then $(MAKE) -C src; fi
    @if [ -f .license -a -f closelib  ]; then ./closelib; fi
    @if [ -f .license -a -f static.mk ]; then $(MAKE) static; fi
    @if [ -f .license -a -f shared.mk ]; then $(MAKE) shared; fi

lib1: .license
    @if [ -f .license -a -d src1 ]; then $(MAKE) -C src1; fi
    @if [ -f .license -a -f closelib  ]; then ./closelib; fi
    @if [ -f .license -a -f static.mk ]; then $(MAKE) static; fi
    @if [ -f .license -a -f shared.mk ]; then $(MAKE) shared; fi

libL1:
    cp libL.a libL1.a
    mv src/system/_leda.o src/system/_leda_orig.o
    $(MAKE) -C src/system  -i L=L1 DFLAGS=-DLEDA_CHECK_LICENSE
    mv src/system/_leda_orig.o src/system/_leda.o

agd:
    $(MAKE) -C AGD 
    @if [ -f AGD/static.mk ]; then $(MAKE) -f AGD/static.mk; fi
    @if [ -f AGD/shared.mk ]; then $(MAKE) -f AGD/shared.mk; fi


shared: .license
    @if [ -f .license ]; then \
    if [ -f shared.mk ]; then \
    echo "$(MAKE) -f shared.mk"; $(MAKE) -f shared.mk; \
    if [ -f libAGD.a ]; then \
    echo "$(MAKE) -f shared.mk agd";    $(MAKE) -f shared.mk agd; fi; \
    else echo "Not configured to build shared libs."; fi; fi

static: .license
    @if [ -f .license ]; then $(MAKE) -f static.mk; fi


.license:
    @/bin/sh confdir/util/unix/license.sh


#------------------------------------------------------------------------------
# programs
#------------------------------------------------------------------------------

xlman: .license
    @if [ -f .license ]; then \
    echo "$(MAKE) -C demo/xlman "; $(MAKE) -C demo/xlman; fi

static_xlman: .license
    @if [ -f .license ]; then \
    echo "$(MAKE) -C demo/xlman "; $(MAKE) -C demo/xlman  static_xlman; fi

demos: .license
    @if [ -f .license ]; then \
    if [ -d demo ]; then $(MAKE) -C demo; fi; fi

tests: .license
    @if [ -f .license ]; then \
    if [ -d test ]; then $(MAKE) -C test; fi; fi

#------------------------------------------------------------------------------
# manual
#------------------------------------------------------------------------------

man: .license
    @if [ -f .license ]; then \
    echo "$(MAKE) -C Manual/MANUAL ";\
    $(MAKE) -C Manual/MANUAL; fi

pdfman: .license
    @if [ -f .license ]; then \
    echo "$(MAKE) -C Manual/MANUAL  pdf";\
    $(MAKE) -C Manual/MANUAL  pdf; fi

dvi: .license
    @if [ -f .license ]; then \
    echo "$(MAKE) -C Manual/MANUAL  dvi";\
    $(MAKE) -C Manual/MANUAL  dvi; fi



#------------------------------------------------------------------------------
# cleaning up
#------------------------------------------------------------------------------

del:
    @if [ -d src   ]; then $(MAKE) -C src    clean; fi
    @if [ -d src1  ]; then $(MAKE) -C src1   clean; fi
    @if [ -d prog  ]; then $(MAKE) -C prog   del; fi
    @if [ -d test  ]; then $(MAKE) -C test   del; fi
    @if [ -d demo  ]; then $(MAKE) -C demo   del; fi
    rm -f lib*.a lib*.so lib*.sl lib*.lib leda.dll leda.lib

clean:
    @if [ -d src   ]; then $(MAKE) -C src    clean; fi
    @if [ -d src1  ]; then $(MAKE) -C src1   clean; fi
    @if [ -d prog  ]; then $(MAKE) -C prog   clean; fi
    @if [ -d test  ]; then $(MAKE) -C test   clean; fi
    @if [ -d demo  ]; then $(MAKE) -C demo   clean; fi

and this the install guide

    ********************************************************************
*                                                                  *
*                                LEDA                              *
*                                                                  *
*                    UNIX OBJECT CODE INSTALLATION                 *
*                                                                  *
********************************************************************


Remark: This file describes the situation in a LEDA package. 



1. Files and Directories
------------------------

To compile and link your programs with LEDA, the LEDA main directory 
should contain at least the following files and subdirectories: 

Readme.txt                  Readme File 
Install/unix.txt            this file 
incl/                       the LEDA include directory 
libleda.a (libleda.so)      basic library 

The static library has extension .a. If a shared library is provided 
it has extension .so. 


2. Preparations
---------------

Unpacking the LEDA distribution file 
LEDA-<ver>-<sys>-<cc>.tar.gz will create the LEDA root 
directory "LEDA-<ver>-<sys>-<cc>". You might want to rename 
it or move it to some different place. Let <LEDA> denote the final 
complete path name of the LEDA root directory. 

To install and use the Unix object code of LEDA you have to modify 
your environment as follows: 

a)  LEDAROOT:
Set the environment variable LEDAROOT to the LEDA root directory: 

csh/tcsh: setenv LEDAROOT <LEDA> 

sh/bash: LEDAROOT=<LEDA> 
  export LEDAROOT 

b)  Command Search Path:
Include $LEDAROOT/Manual/cmd into your command search path 
(environment variable path (csh) or PATH (sh)) and call rehash (if 
required by your system). 

c)  Shared Library: (for solaris, linux, irix, osf1) 
If you planning to use shared libraries include $LEDAROOT into the 
LD_LIBRARY_PATH search path. Then go to $LEDAROOT and type 
make shared. This will construct the shared libraries from the static
libraries. 
Please note: Building the shared library is not supported on each
platform.

d)  xlman and demos: Go to $LEDAROOT and type make xlman to compile 
and link LEDA's interactive manual reader xlman. Now you can start 
xlman for reading and printing manual pages, starting demo programs 
and browsing more release notes. 


3. Compiling and linking application programs
---------------------------------------------

a) Use the -I compiler flag to tell the compiler where to find the 
LEDA header files.

CC (g++) -I$LEDAROOT/incl -c file.c

b) Use the -L compiler flag to tell the compiler where to find the 
library (libleda.a/so)

CC (g++)  -L$LEDAROOT file.o -lleda -lX11 -lm

If using windows on solaris systems you might have to link 
with the system socket library and the network services library as 
well:
CC (g++)  ... -lleda -lX11 -lsocket -lnsl -lm

c) Compile and link simultaneously with

CC (g++)  -I$LEDAROOT/incl -L$LEDAROOT file.c -lleda -lX11 -lm

You may want to ask your system adminstrator to install the header 
files and library in the system's default directories.
Then you no longer have to specify header and library search paths on 
the compiler command line.


4. Example programs and demos
-----------------------------

The source code of all example and demo programs can be found in 
$LEDAROOT/test and $LEDAROOT/demo. Goto $LEDAROOT/test or 
$LEDAROOT/demo and type "make" to compile and link all test or  demo 
programs, respectively. 


5. User Manual
--------------

Postscript, PDF, and HTML versions of the manual are available at 

             http://www.algorithmic-solutions.com

I need a Shared Library. But I cant'understend how install it. I'm new from LEDA end makefile. Can you help me end explein step by step?

If i put make share the risult is: Not configured to build shared libs. What can I do?

Luca De Fusco
  • 27
  • 1
  • 4

1 Answers1

0

The makefile branches out into two other makefiles, depending on what library you have (static (should always be there) or shared). Your output suggests that you don't have an appropriate shared library in any of the places the makefile is searching in. Did you add the variable $LEDAROOT to LD_LIBRARY_PATH (under sh/bash:export LD_LIBRARY_PATH="$LEDAROOT:$LD_LIBRARY_PATH") as suggested in the installation guide (section 2.c.)?

Otherwise it might be worth a try to build with make static. Only after this build has successfully finished,make install will be able to work.

dummman
  • 189
  • 5