automake
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Circular dependency


From: Guillaume Rousse
Subject: Re: Circular dependency
Date: Mon, 27 Nov 2006 17:10:46 +0100
User-agent: Thunderbird 1.5.0.8 (X11/20061109)

Ralf Wildenhues wrote:
> Hello Guillaume,
> 
> * Guillaume Rousse wrote on Thu, Nov 23, 2006 at 04:46:50PM CET:
>> I'm using this rule to substitute values in a sourcefile:
>> corelib/camlimages.ml: Makefile corelib/camlimages.ml.in
> [...]
> 
>> As detailed in autoconf documentation
>> http://www.gnu.org/software/autoconf/manual/autoconf-2.57/html_mono/autoconf.html#SEC24
> 
> FWIW, 2.57 is an old version, 2.61 is current.  The version to the
> current manual should be found here:
> http://www.gnu.org/software/autoconf/manual/autoconf.html#Installation-Directory-Variables
> (We still have to update it, as it's showing 2.60.  But that's where the
> new one will end up as well, so please update your bookmarks.)
Done, thanks.

>> However, make keep complaining about a circular dependency issue:
>> make[1]: Circular corelib/camlimages.ml <- Makefile dependency dropped.
>>
>> I guess it's because generated makefile has itself a rule triggering
>> configure again, but I can't find where it's related to
>> corelib/camlimages.ml, neither how to break the loop.
> 
> You're providing too little information for me to be able to deduce the
> loop.  Can you post the whole Makefile.am (and whatever changes you made
> to Automake, if any)?
Here it is. I did no special modification tu automake.

#*********************************************************************#
#                                                                     #
#                          Caml Images                                #
#                                                                     #
#            Fran├žois Pessaux, projet Cristal, INRIA Rocquencourt     #
#            Pierre Weis, projet Cristal, INRIA Rocquencourt          #
#            Jun Furuse, projet Cristal, INRIA Rocquencourt           #
#                                                                     #
#  Copyright 1999-2004,                                               #
#  Institut National de Recherche en Informatique et en Automatique.  #
#  Distributed only by permission.                                    #
#                                                                     #
#*********************************************************************#

#(* $Id: Makefile,v 1.84 2006/11/16 13:02:23 rousse Exp $ *)

#SUBDIRS = examples

ocamlsitelibdir = $(OCAMLLIB)/site-lib/camlimages
ocamlsitelib_DATA = camlimages.cma \
                    camlimages.cmxa \
                    camlimages.a \
                    libcamlimages.a \
                    $(OCAMLINTERFACES) \
                    META
ocamlstublibdir = $(OCAMLLIB)/stublibs
ocamlstublib_DATA = dllcamlimages.so

BUILT_SOURCES = corelib/camlimages.ml

COMPFLAGS       = -warn-error A
LINKFLAGS       =        
LOCAL_COMPFLAGS = -I corelib -I graphics -I bmp -I ppm -I xvthumb
LOCAL_CFLAGS    =

OCAMLSOURCES = corelib/camlimages.ml \
               corelib/mstring.ml \
               corelib/color.ml \
               corelib/region.ml \
               corelib/tmpfile.ml \
               corelib/bitmap.ml \
               corelib/genimage.ml \
               corelib/rgba32.ml \
               corelib/rgb24.ml \
               corelib/index8.ml \
               corelib/index16.ml \
               corelib/cmyk32.ml \
               corelib/images.ml \
               corelib/oColor.ml \
               corelib/oImages.ml \
               corelib/reduce.ml \
               corelib/geometry.ml \
               corelib/colorhist.ml \
               corelib/blend.ml \
               graphics/graphic_image.ml \
               graphics/oGraphic.ml \
               bmp/bmp.ml \
               bmp/oBmp.ml \
               ppm/ppm.ml \
               ppm/oPpm.ml \
               xvthumb/xvthumb.ml \
               xvthumb/oXvthumb.ml

OCAMLINTERFACES = corelib/mstring.mli \
                  corelib/color.mli \
                  corelib/region.mli \
                  corelib/tmpfile.mli \
                  corelib/bitmap.mli \
                  corelib/genimage.mli \
                  corelib/rgba32.mli \
                  corelib/rgb24.mli \
                  corelib/index8.mli \
                  corelib/index16.mli \
                  corelib/cmyk32.mli \
                  corelib/images.mli \
                  corelib/oColor.mli \
                  corelib/oImages.mli \
                  corelib/reduce.mli \
                  corelib/blend.mli \
                  graphics/graphic_image.mli \
                  bmp/bmp.mli \
                  ppm/ppm.mli \
                  xvthumb/xvthumb.mli \
                  xvthumb/oXvthumb.mli

CSOURCES = 

if HAVE_LABLGTK
OCAMLSOURCES += lablgtk/ximage.ml \
                lablgtk/oXimage.ml
OCAMLINTERFACES += lablgtk/ximage.mli \
                   lablgtk/oXimage.mli
LOCAL_COMPFLAGS += -I lablgtk -I $(LABLGTKDIR)
endif

if HAVE_LABLGTK2
OCAMLSOURCES += lablgtk2/ximage2.ml \
                lablgtk2/oXimage2.ml
OCAMLINTERFACES += lablgtk2/ximage2.mli \
                   lablgtk2/oXimage2.mli
LOCAL_COMPFLAGS += -I lablgtk2 -I $(LABLGTK2DIR)
endif

if HAVE_GIF
OCAMLSOURCES += gif/gif.ml \
                gif/oGif.ml
OCAMLINTERFACES += gif/gif.mli
LOCAL_COMPFLAGS += -I gif
CSOURCES += gif/gifread.c \
            gif/gifwrite.c
endif

if HAVE_PNG
OCAMLSOURCES += png/png.ml \
                png/oPng.ml
OCAMLINTERFACES += png/png.mli
LOCAL_COMPFLAGS += -I png
CSOURCES += png/pngread.c \
            png/pngwrite.c
endif

if HAVE_JPEG
OCAMLSOURCES += jpeg/jpeg.ml \
                jpeg/oJpeg.ml
OCAMLINTERFACES += jpeg/jpeg.mli
LOCAL_COMPFLAGS += -I jpeg
CSOURCES += jpeg/jpegread.c \
            jpeg/jpegwrite.c
endif

if HAVE_TIFF
OCAMLSOURCES += tiff/tiff.ml \
                tiff/oTiff.ml
OCAMLINTERFACES += tiff/tiff.mli
LOCAL_COMPFLAGS += -I tiff
CSOURCES += tiff/tiffread.c \
            tiff/tiffwrite.c
endif

if HAVE_XPM
OCAMLSOURCES += xpm/xpm.ml \
                xpm/oXpm.ml
OCAMLINTERFACES += xpm/xpm.mli
LOCAL_COMPFLAGS += -I xpm
CSOURCES += xpm/xpmread.c \
            xpm/xpmwrite.c
LOCAL_CFLAGS += $(INCXPM)
endif

if HAVE_FREETYPE
OCAMLSOURCES += freetype/ftlow.ml \
                freetype/freetype.ml \
                freetype/jis_table.ml \
                freetype/jis_unicode.ml \
                freetype/fttext.ml \
                freetype/oFreetype.ml
OCAMLINTERFACES += freetype/ftlow.mli \
                   freetype/freetype.mli \
                   freetype/jis_unicode.mli \
                   freetype/fttext.mli
CSOURCES += freetype/ftintf.c
LOCAL_COMPFLAGS += -I freetype
LOCAL_CFLAGS += $(INCFREETYPE)
endif

if HAVE_PS
OCAMLSOURCES += ps/ps.ml \
                ps/oPs.ml
OCAMLINTERFACES += ps/ps.mli
LOCAL_COMPFLAGS += -I ps
endif

CLEANFILES = $(OCAMLBYTOBJS) \
             $(OCAMLOPTOBJS) \
             $(OCAMLOPTOBJS:.cmx=.o) \
             $(COBJS) \
             libcamlimages.a \
             dllcamlimages.so \
             camlimages.a \
             camlimages.cma \
             camlimages.cmxa \
             corelib/camlimages.ml

OCAMLBYTOBJS    = $(OCAMLSOURCES:.ml=.cmo)
OCAMLOPTOBJS    = $(OCAMLSOURCES:.ml=.cmx)
COBJS           = $(CSOURCES:.c=.o)
#EXTCLIB                = $(LIBFREETYPE) $(LIBXPM) $(LIBTIFF) \
#                 $(LIBPNG) $(LIBJPEG) $(LIBGIF)

all: byt opt

byt: camlimages.cma

opt: camlimages.cmxa

clib: $(COBJS)
        $(OCAMLMKLIB) -o camlimages $(EXTCLIB) $(LDFLAGS) $(COBJS)

camlimages.cma: $(OCAMLBYTOBJS) clib
        $(OCAMLMKLIB) -linkall -o camlimages $(EXTCLIB) $(LDFLAGS) 
$(OCAMLBYTOBJS)

camlimages.cmxa: $(OCAMLOPTOBJS) clib
        $(OCAMLMKLIB) -linkall -o camlimages $(EXTCLIB) $(LDFLAGS) 
$(OCAMLOPTOBJS)

corelib/camlimages.ml: Makefile corelib/camlimages.ml.in
        rm -f corelib/camlimages.ml corelib/camlimages.ml.tmp
        sed \
                -e 's,@PACKAGE_VERSION\@,$(PACKAGE_VERSION),g' \
                -e 's,@SUPPORT_GIF\@,$(SUPPORT_GIF),g' \
                -e 's,@SUPPORT_PNG\@,$(SUPPORT_PNG),g' \
                -e 's,@SUPPORT_JPEG\@,$(SUPPORT_JPEG),g' \
                -e 's,@SUPPORT_TIFF\@,$(SUPPORT_TIFF),g' \
                -e 's,@SUPPORT_FREETYPE\@,$(SUPPORT_FREETYPE),g' \
                -e 's,@SUPPORT_PS\@,$(SUPPORT_PS),g' \
                -e 's,@SUPPORT_XPM\@,$(SUPPORT_XPM),g' \
                -e 's,@PATH_RGB_TXT\@,$(PATH_RGB_TXT),g' \
                -e 's,@PATH_GS\@,$(PATH_GS),g' \
                -e 's,@WORD_SIZE\@,$(WORD_SIZE),g' \
                corelib/camlimages.ml.in > corelib/camlimages.ml.tmp
        mv corelib/camlimages.ml.tmp corelib/camlimages.ml


top: all
        $(OCAMLMKTOP) -custom -o customtop -ccopt "-L." \
                $(WITH_UNIX) \
                $(WITH_CAMLIMAGES)

test:
        cd test && $(MAKE)

examples:
        cd examples && $(MAKE)

doc:
        cd doc && $(MAKE)

SUFFIXES = .ml .mli .cmo .cmi .cmx .c .o

.ml.cmo:
        $(OCAMLC) $(COMPFLAGS) $(LOCAL_COMPFLAGS) -c $<

.mli.cmi:
        $(OCAMLC) $(COMPFLAGS) $(LOCAL_COMPFLAGS) -c $<

.ml.cmx:
        $(OCAMLOPT) $(COMPFLAGS) $(LOCAL_COMPFLAGS) -c $<

.c.o: config.h
        $(OCAMLC) -ccopt "-o $@ $(CFLAGS) $(LOCAL_CFLAGS)" -c $<

.depend: $(OCAMLSOURCES) $(OCAMLINTERFACES) 
        $(OCAMLDEP) $(OCAMLSOURCES)  $(OCAMLINTERFACES) > .depend

include .depend

reply via email to

[Prev in Thread] Current Thread [Next in Thread]