Thanks a lot for the explanation. I will simply leave the makefile in the same directory of codes to avoid making mistakes.
best, Alan On Thu, Aug 25, 2011 at 2:01 PM, Barry Smith <bsmith at mcs.anl.gov> wrote: > > ComputeRHS.o: Programs/ComputeRHS.c Programs/ComputeRHS.h Programs/def.h > chkopts > -${CLINKER} -o ComputerRHS.o Programs/ComputeRHS.c > ${PETSC_SNES_LIB} > > Don't use the CLINKER to compile code. That is only for linking the > executable. So for example you should be able to us > > myprogram: Programs/ComputeRHS.o > -${CLINKER} -o myprogram Programs/ComputeRHS.o ${PETSC_SNES_LIB} > > Also it generally is much easier to have make files that site in the same > directory as the source code, less hassle and less likely for things to go > wrong. > > Barry > > > On Aug 25, 2011, at 1:56 PM, Alan Wei wrote: > > > Dear all, > > I hope you're having a nice day. > > I met a problem on makefile of PETSc. Original PETSc has the makefile > in the same directory of the .c files. However, I want to put all .c files > to another directory. I changed the makefile also; however it always has a > error saying the PETSc header files can not be found: > > > > /home/zlwei/soft/mercurial/petsc-dev/arch-linux2-c-debug/bin/mpicc -Wall > -Wwrite-strings -Wno-strict-aliasing -Wno-unknown-pragmas -g3 -o > ComputerRHS.o Programs/ComputeRHS.c > -L/home/zlwei/soft/mercurial/petsc-dev/arch-linux2-c-debug/lib -lpetsc > -Wl,-rpath,/home/zlwei/soft/mercurial/petsc-dev/arch-linux2-c-debug/lib > -lflapack -lfblas -lm -L/usr/lib/gcc/x86_64-redhat-linux/4.1.2 -ldl -lmpich > -lopa -lmpl -lrt -lpthread -lgcc_s -lmpichf90 -lgfortran -lm -lm -ldl > -lmpich -lopa -lmpl -lrt -lpthread -lgcc_s -ldl > > Programs/ComputeRHS.c:1:23: error: petscdmda.h: No such file or directory > > Programs/ComputeRHS.c:2:22: error: petscksp.h: No such file or directory > > Programs/ComputeRHS.c:3:23: error: petscpcmg.h: No such file or directory > > Programs/ComputeRHS.c:4:23: error: petscdmmg.h: No such file or directory > > In file included from Programs/ComputeRHS.c:5: > > Programs/def.h:6:22: error: petscsys.h: No such file or directory > > In file included from Programs/ComputeRHS.c:5: > > Programs/def.h:25: error: expected specifier-qualifier-list before > PetscReal > > Programs/def.h:29: error: expected specifier-qualifier-list before > PetscScalar > > Programs/def.h:35: error: expected specifier-qualifier-list before > PetscInt > > Programs/def.h:41: error: expected specifier-qualifier-list before > PetscScalar > > Programs/ComputeRHS.c:10: error: expected =, ,, ;, asm or __attribute__ > before ComputeRHS > > make: [ComputeRHS.o] Error 1 (ignored) > > make: *** No rule to make target `Initialization.o', needed by `ex29'. > Stop. > > > > My codes are attached. Could you please help me to figure this out? > > > > thanks, > > Alan > > <MakeFileProblem.zip> > > -------------- next part -------------- An HTML attachment was scrubbed... URL: <http://lists.mcs.anl.gov/pipermail/petsc-users/attachments/20110825/7e596c20/attachment.htm>