X-Authentication-Warning: delorie.com: mail set sender to djgpp-bounces using -f From: "Fiendish McTavern" Newsgroups: comp.os.msdos.djgpp Subject: [new user] compile and link on winXp cmd line versus makefile Lines: 48 X-Priority: 3 X-MSMail-Priority: Normal X-Newsreader: Microsoft Outlook Express 6.00.2900.3138 X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2900.3198 X-RFC2646: Format=Flowed; Original Message-ID: <_cX7j.6211$3b7.2346@newsfe23.lga> NNTP-Posting-Host: 75.110.200.158 X-Complaints-To: abuse AT suddenlink DOT net X-Trace: newsfe23.lga 1197490106 75.110.200.158 (Wed, 12 Dec 2007 13:08:26 MST) NNTP-Posting-Date: Wed, 12 Dec 2007 13:08:26 MST Organization: Suddenlink Date: Wed, 12 Dec 2007 14:06:21 -0600 To: djgpp AT delorie DOT com DJ-Gateway: from newsgroup comp.os.msdos.djgpp Reply-To: djgpp AT delorie DOT com Hi all, I can successfully compile and link an application from the command line with these two lines: (consider cd already pointing to local dir) nasm32 -f coff asgn4.asm -o asgn4.o gcc -o asgn4.exe dvideo.c asgn4.o But if I try to use a makefile with what I think are lines that have the same meaning, the linking doesn't work. I get undefined reference errors for every call in .c main() to functions declared extern in the .h header file which are defined as globals in the .asm code file. (DVIDEO.C also defines a global: int text_buffer = __dpmi_segment_to_descriptor(0xb800) and then text_buffer is declared extern in the .asm file.) Here are the contents of the makefile I'm trying: .phony: all all: app app: DVIDEO.C DVIDEO.H asgn4 gcc -o asgn4.exe DVIDEO.C asgn4.o asgn4: asgn4.asm nasm32 -f coff asgn4.asm -o asgn4.o I am using DJGPP gcc422b and make3791b. If I use the -Xlinker --verbose option for the gcc call within the makefile, gcc reports that my two .o object files are successfully opened for linking (along with all the library object files), but somehow the linking fails, and all the error report lines begin just after the last .o file opens successfully. Can anyone offer any assistance? I have already earned an A+ in the class for which asgn4.exe was an assignment. This question revolves around work I'm doing for a project which will allow future students of the same class to use Eclipse with the CDT, and assembly plug-ins for developing class projects. I have already eliminated Eclipse from the question presented here, because the errors show up even when I call make directly from the command line, "make -f makefile.txt -k all". But the errors don't appear, and an .exe file is created, if I run the two calls to nasm32 and gcc directly from the command line (or in a .bat script). My belief at this point is that I haven't set some flag or evironment variable within DJGPP (and/or make) properly, but I've exhausted all the places I can think to look. Any help is greatly appreciated. Jon