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 mpsuz...@hiroshima-u.ac.jp 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 <mirco.ba...@gmail.com> 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 <mpsuz...@hiroshima-u.ac.jp> >> >>> 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 <mirco.ba...@gmail.com> 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 <mirco.ba...@gmail.com> >>> > >>> >> 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 <mpsuz...@hiroshima-u.ac.jp> >>> >> >>> >> 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 <mirco.ba...@gmail.com> 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 <mpsuz...@hiroshima-u.ac.jp> >>> >>> > >>> >>> >> 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 <mpsuz...@hiroshima-u.ac.jp> >>> >>> >> > >>> >>> >> >> 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 >Freetype@nongnu.org >http://lists.nongnu.org/mailman/listinfo/freetype _______________________________________________ Freetype mailing list Freetype@nongnu.org http://lists.nongnu.org/mailman/listinfo/freetype