freetype
[Top][All Lists]
Advanced

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

Re: [ft] Compiling freetype 2.3.9 with bcc fails


From: mpsuzuki
Subject: Re: [ft] Compiling freetype 2.3.9 with bcc fails
Date: Tue, 14 Jul 2009 14:21:29 +0900

Hi,

Just I've installed MinGW 5.1.4 and Borland C++ 5.5
onto my Windows PC and reproduced that the building
process of FT2 does not finish. I thank Mirco.

I could compile apinames.exe with bcc32 by single
command, aslike:

        bcc32 -oobjs\apinames.exe src\tools\apinames.c

But running apinames.exe makes mingw32-make.exe crashed.
If I execute apinames.exe directly from MS-DOS command
line, I got attached dialog (sorry for Japanese message),
the process is crashed.

I will check why apinames.exe built by bcc32 is crashed
(nothing to say, "Hello World" built by bcc32 works 
 correctly), but the quickest fix would be setting CCraw
 to gcc. If I couldn't provide a fix making apinames.exe
built by bcc32 work correctly, I will modify bcc.mk
setting CCraw to gcc.

Regards,
mpsuzuki

On Tue, 14 Jul 2009 01:51:30 +0900
address@hidden wrote:

>Hi,
>
>I overlooked a possibility that your modification of
>Makefile caused the failure to generate objs/freetype.def.
>
>You wrote:
>>I commented out the build APINAMES.EXE in export.mk to see if the library is
>>build fine.
>
>I guess you removed (or commented out) a line defining
>apinames.exe
>
>  APINAMES_EXE := $(OBJ_DIR)/apinames$(E_BUILD)
>
>instead of the line building apinames.exe
>
>  $(APINAMES_EXE): $(APINAMES_SRC)
>          $(CCexe) $(CCexe_CFLAGS) $(CCexe_LDFLAGS) $(TE)$@ $<
>
>If my guessing is right, you cleared APINAMES_EXE by
>yourself and caused endless loop. If you place
>apinames.exe at right place, the latter target
>is automatically skipped. You don't have to remove
>the line.
>
>If you read exports.mk carefully:
>
>  APINAMES_SRC := $(TOP_DIR)/src/tools/apinames.c
>  APINAMES_EXE := $(OBJ_DIR)/apinames$(E_BUILD)
>
>  $(APINAMES_EXE): $(APINAMES_SRC)
>          $(CCexe) $(CCexe_CFLAGS) $(CCexe_LDFLAGS) $(TE)$@ $<
>
>  .PHONY: symbols_list
>
>  symbols_list: $(EXPORTS_LIST)
>
>  # We manually add TT_New_Context and TT_RunIns, which are needed by TT
>  # debuggers, to the EXPORTS_LIST.
>  #
>  $(EXPORTS_LIST): $(APINAMES_EXE) $(PUBLIC_HEADERS)
>          $(subst /,$(SEP),$(APINAMES_EXE)) -o$@ $(APINAMES_OPTIONS) 
> $(PUBLIC_HEADERS)
>          @echo TT_New_Context >> $(EXPORTS_LIST)
>          @echo TT_RunIns >> $(EXPORTS_LIST)
>
>  $(PROJECT_LIBRARY): $(EXPORTS_LIST)
>
>you will find following dependency chain.
>
>A. libfreetype (referred by $(PROJECT_LIBRARY)) requires $(EXPORTS_LIST)
>B. $(EXPORTS_LIST) requires $(APINAMES_EXE) and $(PUBLIC_HEADERS)
>C. $(APINAMES_EXE) requires $(APINAMES_SRC)
>
>So clearing APINAMES_EXE or simply-skipping APINAMES_EXE
>target is bad idea. It breaks the chain of dependency.
>
>On Mon, 13 Jul 2009 10:44:43 +0200
>Mirco Babin <address@hidden> wrote:
>
>>Hi,
>>
>>I think I made an error during the testing. Now the -L switch does not work
>>when I'm testing with the command prompt. I think I had an apinames.obj in
>>the basedirectory. I'm sorry about the -L switch, it was a waste of time.
>>
>>But the following sequence does work (first compile to the OBJ, then link):
>>bcc32 -c -oobjs\apinames.obj src/tools/apinames.c
>>bcc32 -oobjs/apinames.exe objs/apinames.obj
>>I commented out the build APINAMES.EXE in export.mk to see if the library is
>>build fine. It does not, in the end I get:
>>
>>bcc32 -A  -I.\objs -I.\builds\win32 -I.\include -c -q -y -d -v -Od -w-par
>>-w-ccc -w-rch -w-pro -w-aus -DFT2_BUILD_LIBRARY
>>-DFT_CONFIG_MODULES_H="<ftmodule.h>"  -I.\src\psnames -oobjs\psnames.obj
>>.\src\psnames\psmodule.c
>>.\src\psnames\psmodule.c:
>>oobjs/freetype.def -dfreetype.dll -wB ./include/freetype/freetype.h
>>./include/freetype/ftadvanc.h ./include/freetype/ftbbox.h
>>./include/freetype/ftbdf.h ./include/freetype/ftbitmap.h
>>./include/freetype/ftcache.h ./include/freetype/ftchapters.h
>>./include/freetype/ftcid.h ./include/freetype/fterrdef.h
>>./include/freetype/fterrors.h ./include/freetype/ftgasp.h
>>./include/freetype/ftglyph.h ./include/freetype/ftgxval.h
>>./include/freetype/ftgzip.h ./include/freetype/ftimage.h
>>./include/freetype/ftincrem.h ./include/freetype/ftlcdfil.h
>>./include/freetype/ftlist.h ./include/freetype/ftlzw.h
>>./include/freetype/ftmac.h ./include/freetype/ftmm.h
>>./include/freetype/ftmodapi.h ./include/freetype/ftmoderr.h
>>./include/freetype/ftotval.h ./include/freetype/ftoutln.h
>>./include/freetype/ftpfr.h ./include/freetype/ftrender.h
>>./include/freetype/ftsizes.h ./include/freetype/ftsnames.h
>>./include/freetype/ftstroke.h ./include/freetype/ftsynth.h
>>./include/freetype/ftsystem.h ./include/freetype/fttrigon.h
>>./include/freetype/fttypes.h ./include/freetype/ftwinfnt.h
>>./include/freetype/ftxf86.h ./include/freetype/t1tables.h
>>./include/freetype/ttnameid.h ./include/freetype/tttables.h
>>./include/freetype/tttags.h ./include/freetype/ttunpat.h
>>process_begin: CreateProcess(NULL, oobjs/freetype.def -dfreetype.dll -wB
>>./include/freetype/freetype.h ./include/freetype/ftadvanc.h
>>./include/freetype/ftbbox.h ./include/freetype/ftbdf.h
>>./include/freetype/ftbitmap.h ./include/freetype/ftcache.h
>>./include/freetype/ftchapters.h ./include/freetype/ftcid.h
>>./include/freetype/fterrdef.h ./include/freetype/fterrors.h
>>./include/freetype/ftgasp.h ./include/freetype/ftglyph.h
>>./include/freetype/ftgxval.h ./include/freetype/ftgzip.h
>>./include/freetype/ftimage.h ./include/freetype/ftincrem.h
>>./include/freetype/ftlcdfil.h ./include/freetype/ftlist.h
>>./include/freetype/ftlzw.h ./include/freetype/ftmac.h
>>./include/freetype/ftmm.h ./include/freetype/ftmodapi.h
>>./include/freetype/ftmoderr.h ./include/freetype/ftotval.h
>>./include/freetype/ftoutln.h ./include/freetype/ftpfr.h
>>./include/freetype/ftrender.h ./include/freetype/ftsizes.h
>>./include/freetype/ftsnames.h ./include/freetype/ftstroke.h
>>./include/freetype/ftsynth.h ./include/freetype/ftsystem.h
>>./include/freetype/fttrigon.h ./include/freetype/fttypes.h
>>./include/freetype/ftwinfnt.h ./include/freetype/ftxf86.h
>>./include/freetype/t1tables.h ./include/freetype/ttnameid.h
>>./include/freetype/tttables.h ./include/freetype/tttags.h
>>./include/freetype/ttunpat.h, ...) failed.
>>make (e=2): Het systeem kan het opgegeven bestand niet vinden.
>>mingw32-make.exe: [objs/freetype.def] Error 2 (ignored)
>>del .\objs\freetype.lib 2> nul
>>tlib /u objs\freetype.lib +.\objs\ftsystem.obj +.\objs\ftdebug.obj
>>+.\objs\ftinit.obj +.\objs\ftbase.obj +.\objs\ftbbox.obj +.\objs\ftbdf.obj
>>+.\objs\ftbitmap.obj +.\objs\ftcid.obj +.\objs\ftfstype.obj
>>+.\objs\ftgasp.obj +.\objs\ftglyph.obj +.\objs\ftgxval.obj
>>+.\objs\ftlcdfil.obj +.\objs\ftmm.obj +.\objs\ftotval.obj
>>+.\objs\ftpatent.obj +.\objs\ftpfr.obj +.\objs\ftstroke.obj
>>+.\objs\ftsynth.obj +.\objs\fttype1.obj +.\objs\ftwinfnt.obj
>>+.\objs\ftxf86.obj +.\objs\truetype.obj +.\objs\type1.obj +.\objs\cff.obj
>>+.\objs\type1cid.obj +.\objs\pfr.obj +.\objs\type42.obj +.\objs\winfnt.obj
>>+.\objs\pcf.obj +.\objs\bdf.obj +.\objs\sfnt.obj +.\objs\autofit.obj
>>+.\objs\pshinter.obj +.\objs\raster.obj +.\objs\smooth.obj
>>+.\objs\ftcache.obj +.\objs\ftgzip.obj +.\objs\ftlzw.obj +.\objs\psaux.obj
>>+.\objs\psnames.obj
>>TLIB 5.1 Copyright (c) 1987-2007 CodeGear
>>Warning: invalid page size value ignored
>>Warning: invalid page size value ignored
>>
>>The "Warning: invalid page size value ignored" is repeated infinitly. I had
>>to abort the compile with CTRL-C.
>>
>>Regards,
>>Mirco
>>
>>
>>2009/7/13 <address@hidden>
>>
>>> Hi,
>>>
>>> Considering the fact that "-L./objs" does not work,
>>> I guess bcc32 cannot recognize "/" as valid pathname
>>> separator. If my guessing is right, the expected
>>> might be:
>>>
>>>        bcc32 -Lobjs -oobjs\apinames.exe src\tools\apinames.c
>>>
>>> You've ever written that you tried
>>>
>>>        bcc32 -Lobjs -oobjs/apinames.exe src/tools/apinames.c
>>>
>>> and it successfully finihsed - the pathname separator
>>> in your experiment was really "/", not "\"?
>>>
>>> Regards,
>>> mpsuzuki
>>>
>>>
>>> On Mon, 13 Jul 2009 08:50:59 +0200
>>>  Mirco Babin <address@hidden> wrote:
>>>
>>> >Hi,
>>> >
>>> >Update, I manually changed the bcc.mk to CCexe_LDFLAGS := -Lobjs
>>> >It still results in the same error. I don't get it, it seems like the
>>> >current directory is changed ?
>>> >
>>> >bcc32 -A  -I.\objs -I.\builds\win32 -I.\include -c -q -y -d -v -Od -w-par
>>> >-w-ccc -w-rch -w-pro -w-aus -DFT2_BUILD_LIBRARY
>>> >-DFT_CONFIG_MODULES_H="<ftmodule.h>"  -I.\src\psnames -oobjs\psnames.obj
>>> >.\src\psnames\psmodule.c
>>> >.\src\psnames\psmodule.c:
>>> >bcc32  -Lobjs -oobjs/apinames.exe src/tools/apinames.c
>>> >CodeGear C++ 5.93 for Win32 Copyright (c) 1993, 2007 CodeGear
>>> >src/tools/apinames.c:
>>> >Turbo Incremental Link 5.81 Copyright (c) 1997-2008 CodeGear
>>> >Fatal: Unable to open file 'APINAMES.OBJ'
>>> >mingw32-make: *** [objs/apinames.exe] Error 1
>>> >Regards,
>>> >Mirco
>>> >
>>> >2009/7/13 Mirco Babin <address@hidden>
>>> >
>>> >> Hi,
>>> >>
>>> >> I applied your patch and compiled.
>>> >> I see the -L now, but it still results in an error. I believe the
>>> -L./objs
>>> >> should be replaced with -Lobjs
>>> >>
>>> >>  bcc32 -A  -I.\objs -I.\builds\win32 -I.\include -c -q -y -d -v -Od
>>> -w-par
>>> >> -w-ccc -w-rch -w-pro -w-aus -DFT2_BUILD_LIBRARY
>>> >> -DFT_CONFIG_MODULES_H="<ftmodule.h>"  -I.\src\psnames -oobjs\psnames.obj
>>> >> .\src\psnames\psmodule.c
>>> >> .\src\psnames\psmodule.c:
>>> >> bcc32  -L./objs -oobjs/apinames.exe src/tools/apinames.c
>>> >> CodeGear C++ 5.93 for Win32 Copyright (c) 1993, 2007 CodeGear
>>> >> src/tools/apinames.c:
>>> >> Turbo Incremental Link 5.81 Copyright (c) 1997-2008 CodeGear
>>> >> Fatal: Unable to open file 'APINAMES.OBJ'
>>> >> mingw32-make: *** [objs/apinames.exe] Error 1
>>> >>
>>> >> Regards,
>>> >> Mirco
>>> >>
>>> >> 2009/7/10 <address@hidden>
>>> >>
>>> >> Hi,
>>> >>>
>>> >>> Could you try following patch? It fixes:
>>> >>>
>>> >>> * declare the suffix ".exe" to be added to "apinames".
>>> >>> * prepare CCexe_CFLAGS & CCexe_LDFLAGS.
>>> >>> * put "-Lobj" to CCexe_LDFLAGS when we use bcc.
>>> >>>
>>> >>> Regards,
>>> >>> mpsuzuki
>>> >>>
>>> >>> diff --git a/builds/win32/win32-def.mk b/builds/win32/win32-def.mk
>>> >>> index a82b146..e6ae31c 100644
>>> >>> --- a/builds/win32/win32-def.mk
>>> >>> +++ b/builds/win32/win32-def.mk
>>> >>> @@ -22,6 +22,7 @@ PLATFORM  := win32
>>> >>>  # The executable file extension (for tools). NOTE: WE INCLUDE THE DOT
>>> >>> HERE !!
>>> >>>  #
>>> >>>  E := .exe
>>> >>> +E_BUILD := .exe
>>> >>>
>>> >>>
>>> >>>  # The directory where all library files are placed.
>>> >>>
>>> >>>
>>> >>> diff --git a/builds/exports.mk b/builds/exports.mk
>>> >>> index 5452b35..d84a4c2 100644
>>> >>> --- a/builds/exports.mk
>>> >>> +++ b/builds/exports.mk
>>> >>> @@ -51,7 +51,7 @@ ifneq ($(EXPORTS_LIST),)
>>> >>>   APINAMES_EXE := $(OBJ_DIR)/apinames$(E_BUILD)
>>> >>>
>>> >>>   $(APINAMES_EXE): $(APINAMES_SRC)
>>> >>> -         $(CCexe) $(TE)$@ $<
>>> >>> +         $(CCexe) $(CCexe_CFLAGS) $(CCexe_LDFLAGS) $(TE)$@ $<
>>> >>>
>>> >>>   .PHONY: symbols_list
>>> >>>
>>> >>> diff --git a/builds/compiler/bcc.mk b/builds/compiler/bcc.mk
>>> >>> index 509cb72..c28359a 100644
>>> >>> --- a/builds/compiler/bcc.mk
>>> >>> +++ b/builds/compiler/bcc.mk
>>> >>> @@ -75,4 +75,8 @@ CLEAN_LIBRARY ?= $(DELETE) $(subst
>>> >>> /,$(SEP),$(PROJECT_LIBRARY))
>>> >>>  LINK_LIBRARY   = tlib /u $(subst /,$(COMPILER_SEP),$@
>>> >>> $(OBJECTS_LIST:%=+%))
>>> >>>
>>> >>>
>>> >>> +# apinames linking
>>> >>> +#
>>> >>> +CCexe_LDFLAGS := -L$(OBJ_DIR)
>>> >>> +
>>> >>>  # EOF
>>> >>>
>>> >>>
>>> >>>
>>> >>>
>>> >>> On Fri, 10 Jul 2009 15:44:56 +0200
>>> >>> Mirco Babin <address@hidden> wrote:
>>> >>>
>>> >>> >Hi,
>>> >>> >
>>> >>> >The problem is that the linker can't find the OBJ file.
>>> >>> >The current directory is .
>>> >>> >The obj files are compiled into .\objs
>>> >>> >From the current directory a link is performed, but the .\objs
>>> directory
>>> >>> is
>>> >>> >not set as a path.
>>> >>> >
>>> >>> >Indeed apinames.exe is just one obj.
>>> >>> >
>>> >>> >I'm looking forward to your solution, thanks in advance !
>>> >>> >
>>> >>> >Regards,
>>> >>> >Mirco
>>> >>> >
>>> >>> >2009/7/10 suzuki toshiya <address@hidden>
>>> >>> >
>>> >>> >> Hi,
>>> >>> >>
>>> >>> >> Mirco Babin wrote (2009/07/10 21:53):
>>> >>> >> > Well,
>>> >>> >> >
>>> >>> >> > I tried the following and it does not produce errors:
>>> >>> >> > bcc32 -Lobjs -oobjs/apinames.exe src/tools/apinames.c
>>> >>> >> >
>>> >>> >> > The -L switch is to provide a library search path (where to find
>>> OBJ
>>> >>> and
>>> >>> >> LIB
>>> >>> >> > files).
>>> >>> >>
>>> >>> >> Interesting. apinames.exe requires only apinames.c,
>>> >>> >> no need to link other libraries and objects, so
>>> >>> >> the requirement of "-Lobjs" is not easy to understand.
>>> >>> >> Maybe we have to care the single command executing
>>> >>> >> compilation and linking.
>>> >>> >>
>>> >>> >> > But I don't known what should be adjusted in the makefiles. They
>>> are
>>> >>> >> really
>>> >>> >> > complex.
>>> >>> >>
>>> >>> >> OK, I will take a look. Please wait 24 hours.
>>> >>> >>
>>> >>> >> Regards,
>>> >>> >> mpsuzuki
>>> >>> >>
>>> >>> >> > Regards,
>>> >>> >> > Mirco
>>> >>> >> > 2009/7/10 suzuki toshiya <address@hidden>
>>> >>> >> >
>>> >>> >> >> Hi,
>>> >>> >> >>
>>> >>> >> >> Mirco Babin wrote (2009/07/10 20:24):
>>> >>> >> >>
>>> >>> >> >>> bcc32 -oobjs/apinames src/tools/apinames.c
>>> >>> >> >>> CodeGear C++ 5.93 for Win32 Copyright (c) 1993, 2007 CodeGear
>>> >>> >> >>> src/tools/apinames.c:
>>> >>> >> >>> Turbo Incremental Link 5.81 Copyright (c) 1997-2008 CodeGear
>>> >>> >> >>> Fatal: Unable to open file 'APINAMES.OBJ'
>>> >>> >> >>> mingw32-make: *** [objs/apinames] Error 1
>>> >>> >> >>>
>>> >>> >> >> I'm unfamiliar with bcc32 commandline syntax.
>>> >>> >> >> How we can build "Hello World"-like program
>>> >>> >> >> by bcc32? I think the author of the Makefile
>>> >>> >> >> assumed that "bcc32 -ohello hello.c" is OK.
>>> >>> >> >> Please let me know how to build hello world
>>> >>> >> >> by bcc32.
>>> >>> >> >>
>>> >>> >> >> The command
>>> >>> >> >>
>>> >>> >> >> bcc32 -oobjs/apinames.exe src/tools/apinames.c
>>> >>> >> >>
>>> >>> >> >> can compile & link working executabe "apinames.exe"?
>>> >>> >> >>
>>> >>> >> >> Regards,
>>> >>> >> >> mpsuzuki
>>> >>> >> >>
>>> >>> >> >
>>> >>> >>
>>> >>> >>
>>> >>> >
>>> >>>
>>> >>
>>> >>
>>> >
>>>
>>
>
>
>_______________________________________________
>Freetype mailing list
>address@hidden
>http://lists.nongnu.org/mailman/listinfo/freetype




reply via email to

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