Re: how to include header file in Makefile
Posted in 2006
Topics: High Availability & Replication, Storage & Space Management
Hi, I didn't know any practice of including a C-header file into a make file. And in fact I still think that this is not a valid thing to do, at least not when using a normal make program. Usually a C-header file (*.h) is included in other C-header files or in C-"body" files (*.c). That surely will work. You can include make files in other make files. make does have an "include" functionality. But then the included file has to adhere to make syntax (which is quite different from C-language syntax). Regards, Martin -- Martin Fuerderer IBM Informix Development Munich, Germany Information Management IBM Information On Demand Global Conference October 15-20, 2006, Anaheim, California see http://www.ibm.com/events/informationondemand informix-list-bounces@iiug.org wrote on 10.08.2006 11:40:11: > I am trying to include some c header file in Makefile. > > the syntex is like : > > include /opt/informix/incl/tools/sqlhdr.h > include /opt/informix/incl/tools/sqliapi.h > > But it throwing some error like : > > "/opt/informix/incl/tools/sqlhdr.h", line 451: make: 1254-057 Shell > command needs a leading tab. > "/opt/informix/incl/tools/sqlhdr.h", line 454: make: 1254-055 > Dependency line needs colon or double colon operator. > No closing parenthesis in archive specification. > "/opt/informix/incl/tools/sqlhdr.h", line 455: make: 1254-054 Archive > not specified correctly: ifx_lo_specset_def_open_flags > "/opt/informix/incl/tools/sqlhdr.h", line 456: make: 1254-057 Shell > command needs a leading tab. > No closing parenthesis in archive specification. > "/opt/informix/incl/tools/sqlhdr.h", line 457: make: 1254-054 Archive > not specified correctly: ifx_lo_specset_estbytes > No closing parenthesis in archive specification. > "/opt/informix/incl/tools/sqlhdr.h", line 459: make: 1254-054 Archive > not specified correctly: ifx_lo_specset_maxbytes > "/opt/informix/incl/tools/sqlhdr.h", line 461: make: 1254-055 > Dependency line needs colon or double colon operator. > "/opt/informix/incl/tools/sqlhdr.h", line 462: make: 1254-055 > Dependency line needs colon or double colon operator. > "/opt/informix/incl/tools/sqlhdr.h", line 465: make: 1254-055 > Dependency line needs colon or double colon operator. > "/opt/informix/incl/tools/sqlhdr.h", line 466: make: 1254-055 > Dependency line needs colon or double colon operator. > No closing parenthesis in archive specification. > "/opt/informix/incl/tools/sqlhdr.h", line 467: make: 1254-054 Archive > not specified correctly: ifx_lo_specget_estbytes > No closing parenthesis in archive specification. > "/opt/informix/incl/tools/sqlhdr.h", line 469: make: 1254-054 Archive > not specified correctly: ifx_lo_specget_maxbytes > "/opt/informix/incl/tools/sqlhdr.h", line 471: make: 1254-055 > Dependency line needs colon or double colon operator. > No closing parenthesis in archive specification. > "/opt/informix/incl/tools/sqlhdr.h", line 472: make: 1254-054 Archive > not specified correctly: ifx_lo_specget_sbspace > "/opt/informix/incl/tools/sqlhdr.h", line 477: make: 1254-055 > Dependency line needs colon or double colon operator. > "/opt/informix/incl/tools/sqlhdr.h", line 478: make: 1254-055 > Dependency line needs colon or double colon operator. > "/opt/informix/incl/tools/sqlhdr.h", line 479: make: 1254-055 > Dependency line needs colon or double colon operator. > "/opt/informix/incl/tools/sqlhdr.h", line 480: make: 1254-055 > Dependency line needs colon or double colon operator. > "/opt/informix/incl/tools/sqlhdr.h", line 481: make: 1254-055 > Dependency line needs colon or double colon operator. > "/opt/informix/incl/tools/sqlhdr.h", line 482: make: 1254-055 > Dependency line needs colon or double colon operator. > "/opt/informix/incl/tools/sqlhdr.h", line 483: make: 1254-055 > Dependency line needs colon or double colon operator. > "/opt/informix/incl/tools/sqlhdr.h", line 484: make: 1254-055 > Dependency line needs colon or double colon operator. > "/opt/informix/incl/tools/sqlhdr.h", line 487: make: 1254-055 > Dependency line needs colon or double colon operator. > "/opt/informix/incl/tools/sqlhdr.h", line 488: make: 1254-055 > Dependency line needs colon or double colon operator. > "/opt/informix/incl/tools/sqlhdr.h", line 489: make: 1254-055 > Dependency line needs colon or double colon operator. > "/opt/informix/incl/tools/sqlhdr.h", line 490: make: 1254-057 Shell > command needs a leading tab. > "/opt/informix/incl/tools/sqlhdr.h", line 491: make: 1254-057 Shell > command needs a leading tab. > "/opt/informix/incl/tools/sqlhdr.h", line 492: make: 1254-055 > Dependency line needs colon or double colon operator. > "/opt/informix/incl/tools/sqlhdr.h", line 493: make: 1254-055 > Dependency line needs colon or double colon operator. > No closing parenthesis in archive specification. > "/opt/informix/incl/tools/sqlhdr.h", line 494: make: 1254-054 Archive > not specified correctly: ifx_lo_create > "/opt/informix/incl/tools/sqlhdr.h", line 496: make: 1254-055 > Dependency line needs colon or double colon operator. > "/opt/informix/incl/tools/sqlhdr.h", line 497: make: 1254-055 > Dependency line needs colon or double colon operator. > No closing parenthesis in archive specification. > "/opt/informix/incl/tools/sqlhdr.h", line 498: make: 1254-054 Archive > not specified correctly: ifx_lo_seek > No closing parenthesis in archive specification. > "/opt/informix/incl/tools/sqlhdr.h", line 500: make: 1254-054 Archive > not specified correctly: ifx_lo_lock > "/opt/informix/incl/tools/sqlhdr.h", line 501: make: 1254-057 Shell > command needs a leading tab. > No closing parenthesis in archive specification. > "/opt/informix/incl/tools/sqlhdr.h", line 502: make: 1254-054 Archive > not specified correctly: ifx_lo_unlock > "/opt/informix/incl/tools/sqlhdr.h", line 504: make: 1254-055 > Dependency line needs colon or double colon operator. > "/opt/informix/incl/tools/sqlhdr.h", line 505: make: 1254-055 > Dependency line needs colon or double colon operator. > No closing parenthesis in archive specification. > "/opt/informix/incl/tools/sqlhdr.h", line 506: make: 1254-054 Archive > not specified correctly: ifx_lo_filename > "/opt/informix/incl/tools/sqlhdr.h", line 508: make: 1254-055 > Dependency line needs colon or double colon operator. > "/opt/informix/incl/tools/sqlhdr.h", line 509: make: 1254-055 > Dependency line needs colon or double colon operator. > "/opt/informix/incl/tools/sqlhdr.h", line 510: make: 1254-055 > Dependency line needs colon or double colon operator. > No closing parenthesis in archive specification. > "/opt/informix/incl/tools/sqlhdr.h", line 511: make: 1254-054 Archive > not specified correctly: ifx_lo_readwithseek > "/opt/informix/incl/tools/sqlhdr.h", line 513: make: 1254-055 > Dependency line n
Hi Thanks for a quick response. Actually Makefile is trying to compile .4gl file using c4gl compiler. And it is using one C file for that. So before that it is compiling That C file using cc compiler. Now i have done modification like this. And it is working fine This path /opt/informix/incl/tools includes all the header file. ........ .......... INCHDR= /opt/informix/incl/tools ........... ......... CC=xlc .......... ............ .c.o : $(CC) -I$(INCHDR) -C $(<) Now its working fine. Thanks a lot for help. Martin Fuerderer wrote: > Hi, > > I didn't know any practice of including a C-header file into > a make file. And in fact I still think that this is not a valid > thing to do, at least not when using a normal make program. > > Usually a C-header file (*.h) is included in other C-header files > or in C-"body" files (*.c). That surely will work. > > You can include make files in other make files. make does have > an "include" functionality. But then the included file has to > adhere to make syntax (which is quite different from C-language > syntax). > > Regards, > Martin > -- > Martin Fuerderer > IBM Informix Development Munich, Germany > Information Management > > IBM Information On Demand Global Conference > October 15-20, 2006, Anaheim, California > see http://www.ibm.com/events/informationondemand > > informix-list-bounces@iiug.org wrote on 10.08.2006 11:40:11: > > > I am trying to include some c header file in Makefile. > > > > the syntex is like : > > > > include /opt/informix/incl/tools/sqlhdr.h > > include /opt/informix/incl/tools/sqliapi.h > > > > But it throwing some error like : > > > > "/opt/informix/incl/tools/sqlhdr.h", line 451: make: 1254-057 Shell > > command needs a leading tab. > > "/opt/informix/incl/tools/sqlhdr.h", line 454: make: 1254-055 > > Dependency line needs colon or double colon operator. > > No closing parenthesis in archive specification. > > "/opt/informix/incl/tools/sqlhdr.h", line 455: make: 1254-054 Archive > > not specified correctly: ifx_lo_specset_def_open_flags > > "/opt/informix/incl/tools/sqlhdr.h", line 456: make: 1254-057 Shell > > command needs a leading tab. > > No closing parenthesis in archive specification. > > "/opt/informix/incl/tools/sqlhdr.h", line 457: make: 1254-054 Archive > > not specified correctly: ifx_lo_specset_estbytes > > No closing parenthesis in archive specification. > > "/opt/informix/incl/tools/sqlhdr.h", line 459: make: 1254-054 Archive > > not specified correctly: ifx_lo_specset_maxbytes > > "/opt/informix/incl/tools/sqlhdr.h", line 461: make: 1254-055 > > Dependency line needs colon or double colon operator. > > "/opt/informix/incl/tools/sqlhdr.h", line 462: make: 1254-055 > > Dependency line needs colon or double colon operator. > > "/opt/informix/incl/tools/sqlhdr.h", line 465: make: 1254-055 > > Dependency line needs colon or double colon operator. > > "/opt/informix/incl/tools/sqlhdr.h", line 466: make: 1254-055 > > Dependency line needs colon or double colon operator. > > No closing parenthesis in archive specification. > > "/opt/informix/incl/tools/sqlhdr.h", line 467: make: 1254-054 Archive > > not specified correctly: ifx_lo_specget_estbytes > > No closing parenthesis in archive specification. > > "/opt/informix/incl/tools/sqlhdr.h", line 469: make: 1254-054 Archive > > not specified correctly: ifx_lo_specget_maxbytes > > "/opt/informix/incl/tools/sqlhdr.h", line 471: make: 1254-055 > > Dependency line needs colon or double colon operator. > > No closing parenthesis in archive specification. > > "/opt/informix/incl/tools/sqlhdr.h", line 472: make: 1254-054 Archive > > not specified correctly: ifx_lo_specget_sbspace > > "/opt/informix/incl/tools/sqlhdr.h", line 477: make: 1254-055 > > Dependency line needs colon or double colon operator. > > "/opt/informix/incl/tools/sqlhdr.h", line 478: make: 1254-055 > > Dependency line needs colon or double colon operator. > > "/opt/informix/incl/tools/sqlhdr.h", line 479: make: 1254-055 > > Dependency line needs colon or double colon operator. > > "/opt/informix/incl/tools/sqlhdr.h", line 480: make: 1254-055 > > Dependency line needs colon or double colon operator. > > "/opt/informix/incl/tools/sqlhdr.h", line 481: make: 1254-055 > > Dependency line needs colon or double colon operator. > > "/opt/informix/incl/tools/sqlhdr.h", line 482: make: 1254-055 > > Dependency line needs colon or double colon operator. > > "/opt/informix/incl/tools/sqlhdr.h", line 483: make: 1254-055 > > Dependency line needs colon or double colon operator. > > "/opt/informix/incl/tools/sqlhdr.h", line 484: make: 1254-055 > > Dependency line needs colon or double colon operator. > > "/opt/informix/incl/tools/sqlhdr.h", line 487: make: 1254-055 > > Dependency line needs colon or double colon operator. > > "/opt/informix/incl/tools/sqlhdr.h", line 488: make: 1254-055 > > Dependency line needs colon or double colon operator. > > "/opt/informix/incl/tools/sqlhdr.h", line 489: make: 1254-055 > > Dependency line needs colon or double colon operator. > > "/opt/informix/incl/tools/sqlhdr.h", line 490: make: 1254-057 Shell > > command needs a leading tab. > > "/opt/informix/incl/tools/sqlhdr.h", line 491: make: 1254-057 Shell > > command needs a leading tab. > > "/opt/informix/incl/tools/sqlhdr.h", line 492: make: 1254-055 > > Dependency line needs colon or double colon operator. > > "/opt/informix/incl/tools/sqlhdr.h", line 493: make: 1254-055 > > Dependency line needs colon or double colon operator. > > No closing parenthesis in archive specification. > > "/opt/informix/incl/tools/sqlhdr.h", line 494: make: 1254-054 Archive > > not specified correctly: ifx_lo_create > > "/opt/informix/incl/tools/sqlhdr.h", line 496: make: 1254-055 > > Dependency line needs colon or double colon operator. > > "/opt/informix/incl/tools/sqlhdr.h", line 497: make: 1254-055 > > Dependency line needs colon or double colon operator. > > No closing parenthesis in archive specification. > > "/opt/informix/incl/tools/sqlhdr.h", line 498: make: 1254-054 Archive > > not specified correctly: ifx_lo_seek > > No closing parenthesis in archive specification. > > "/opt/informix/incl/tools/sqlhdr.h", line 500: make: 1254-054 Archive > > not specified correctly: ifx_lo_lock > > "/opt/informix/incl/tools/sqlhdr.h", line 501: make: 1254-057 Shell > > command needs a leading tab. > > No closing parenthesis in archive specification. > > "/opt/informix/incl/tools/sqlhdr.h", line 502: make: 1254-054 Archive > > not specified correctly: ifx_lo_unlock > > "/opt/informix/incl/tools/sqlhdr.h", line 504: make: 1254-055 > > Dependency line needs colon or double colon operator. > > "/opt/informix/incl/tools/sqlhdr.h", line 505: make: 1254-055 > > Dependency line needs colon or double colon operator.@@NL