Leen Almadani
Leen Almadani

Reputation: 13

makefile won't compile in windows: The system cannot find the file specified

I'm not sure what I'm doing here, I'm trying to compile code so I can run it in python. The makefile is in the file S4, when I run make it creates the folder build, and for some reason it expects the file S4.cpp inside which doesn't make any sense because it empty, here's the error I get:

C:\Users\lovel\Anaconda3\S4>make
mkdir "build/S4k"
mkdir "build/modules"
g++ -c -O2 -Wall -march=native -fcx-limited-range -fno-exceptions -static - IS4 -IS4/RNP -IS4/kiss_fft S4/S4.cpp -o build/S4k/S4.cpp
process_begin: CreateProcess(NULL, g++ -c -O2 -Wall -march=native -fcx- limited-range -fno-exceptions -static -IS4 -IS4/RNP -IS4/kiss_fft S4/S4.cpp - o build/S4k/S4.cpp, ...) failed.
make (e=2): The system cannot find the file specified.
make: *** [build/S4k/S4.cpp] Error 2

When I place S4.cpp and S4.o inside their respective folders I still get this error:

C:\Users\lovel\Anaconda3\S4\build\S4k>make
mkdir "build"
mkdir "build/S4k"
mkdir "build/modules"
make: *** No rule to make target `S4/S4.cpp', needed by `build/S4k/S4.o'. Stop.

I'm running make on windows and using python 2.5.7. Here's the link to what I'm trying to compile and run in python Stanford Stratified Structure Solver its been giving me so many issues for the past 3 weeks and I need help installing it correctly.

I probably have to change my makefile, its meant to be for python and lua depending on what you prefer I'm going with python, so here's the makefile code:

# The following must be defined already:
#   CC
#   CXX
#   OPTFLAGS
#   LUA_INC
#   LUA_LIB
#   LUA_MODULE_LIB
#   LA_LIBS
#   OBJDIR
#   SHLIB_EXT (so, dll)
#   SHLIB_FLAGS

CPPFLAGS += -IS4 -IS4/RNP -IS4/kiss_fft

#### Compilation targets

S4_LIBNAME = libS4.a

 all: $(OBJDIR)/$(S4_LIBNAME) $(OBJDIR)/S4 modules
 S4mpi: $(OBJDIR)/S4mpi

objdir:
    mkdir "$(OBJDIR)"
    mkdir "$(OBJDIR)/S4k"
    mkdir "$(OBJDIR)/modules"

S4_LIBOBJS = \
     $(OBJDIR)/S4k/S4.o \
     $(OBJDIR)/S4k/rcwa.o \
     $(OBJDIR)/S4k/fmm_common.o \
     $(OBJDIR)/S4k/fmm_FFT.o \
     $(OBJDIR)/S4k/fmm_kottke.o \
     $(OBJDIR)/S4k/fmm_closed.o \
     $(OBJDIR)/S4k/fmm_PolBasisNV.o \
     $(OBJDIR)/S4k/fmm_PolBasisVL.o \
     $(OBJDIR)/S4k/fmm_PolBasisJones.o \
     $(OBJDIR)/S4k/fmm_experimental.o \
     $(OBJDIR)/S4k/fft_iface.o \
     $(OBJDIR)/S4k/pattern.o \
     $(OBJDIR)/S4k/intersection.o \
     $(OBJDIR)/S4k/predicates.o \
     $(OBJDIR)/S4k/numalloc.o \
     $(OBJDIR)/S4k/gsel.o \
     $(OBJDIR)/S4k/sort.o \
     $(OBJDIR)/S4k/kiss_fft.o \
     $(OBJDIR)/S4k/kiss_fftnd.o \
     $(OBJDIR)/S4k/SpectrumSampler.o \
     $(OBJDIR)/S4k/cubature.o \
     $(OBJDIR)/S4k/Interpolator.o \
     $(OBJDIR)/S4k/convert.o

ifndef LAPACK_LIB
   S4_LIBOBJS += $(OBJDIR)/S4k/Eigensystems.o
endif

$(OBJDIR)/libS4.a: objdir $(S4_LIBOBJS)
    $(AR) crvs $@ $(S4_LIBOBJS)

$(OBJDIR)/S4k/S4.o: S4/S4.cpp
    $(CXX) -c $(CXXFLAGS) $(CPPFLAGS) $< -o $@
$(OBJDIR)/S4k/rcwa.o: S4/rcwa.cpp
    $(CXX) -c $(CXXFLAGS) $(CPPFLAGS) $< -o $@
$(OBJDIR)/S4k/fmm_common.o: S4/fmm/fmm_common.cpp
    $(CXX) -c $(CXXFLAGS) $(CPPFLAGS) $< -o $@
$(OBJDIR)/S4k/fmm_FFT.o: S4/fmm/fmm_FFT.cpp
    $(CXX) -c $(CXXFLAGS) $(CPPFLAGS) $< -o $@
$(OBJDIR)/S4k/fmm_kottke.o: S4/fmm/fmm_kottke.cpp
    $(CXX) -c $(CXXFLAGS) $(CPPFLAGS) $< -o $@
$(OBJDIR)/S4k/fmm_closed.o: S4/fmm/fmm_closed.cpp
    $(CXX) -c $(CXXFLAGS) $(CPPFLAGS) $< -o $@
$(OBJDIR)/S4k/fmm_PolBasisNV.o: S4/fmm/fmm_PolBasisNV.cpp
    $(CXX) -c $(CXXFLAGS) $(CPPFLAGS) $< -o $@
$(OBJDIR)/S4k/fmm_PolBasisVL.o: S4/fmm/fmm_PolBasisVL.cpp
    $(CXX) -c $(CXXFLAGS) $(CPPFLAGS) $< -o $@
$(OBJDIR)/S4k/fmm_PolBasisJones.o: S4/fmm/fmm_PolBasisJones.cpp
    $(CXX) -c $(CXXFLAGS) $(CPPFLAGS) $< -o $@
$(OBJDIR)/S4k/fmm_experimental.o: S4/fmm/fmm_experimental.cpp
    $(CXX) -c $(CXXFLAGS) $(CPPFLAGS) $< -o $@
$(OBJDIR)/S4k/fft_iface.o: S4/fmm/fft_iface.cpp
    $(CXX) -c $(CXXFLAGS) $(CPPFLAGS) $< -o $@
$(OBJDIR)/S4k/pattern.o: S4/pattern/pattern.c
    $(CC) -c $(CFLAGS) $(CPPFLAGS) $< -o $@
$(OBJDIR)/S4k/intersection.o: S4/pattern/intersection.c
    $(CC) -c $(CFLAGS) $(CPPFLAGS) $< -o $@
$(OBJDIR)/S4k/predicates.o: S4/pattern/predicates.c
    $(CC) -c $(CFLAGS) $(CPPFLAGS) $< -o $@
$(OBJDIR)/S4k/numalloc.o: S4/numalloc.c
    $(CC) -c $(CFLAGS) $(CPPFLAGS) $< -o $@
$(OBJDIR)/S4k/gsel.o: S4/gsel.c
    $(CC) -c $(CFLAGS) $(CPPFLAGS) $< -o $@
$(OBJDIR)/S4k/sort.o: S4/sort.c
    $(CC) -c $(CFLAGS) $(CPPFLAGS) $< -o $@
$(OBJDIR)/S4k/kiss_fft.o: S4/kiss_fft/kiss_fft.c
    $(CC) -c $(CFLAGS) $(CPPFLAGS) $< -o $@
$(OBJDIR)/S4k/kiss_fftnd.o: S4/kiss_fft/tools/kiss_fftnd.c
    $(CC) -c $(CFLAGS) $(CPPFLAGS) $< -o $@
$(OBJDIR)/S4k/SpectrumSampler.o: S4/SpectrumSampler.c
    $(CC) -c $(CFLAGS) $(CPPFLAGS) $< -o $@
$(OBJDIR)/S4k/cubature.o: S4/cubature.c
    $(CC) -c $(CFLAGS) $(CPPFLAGS) $< -o $@
$(OBJDIR)/S4k/Interpolator.o: S4/Interpolator.c
    $(CC) -c $(CFLAGS) $(CPPFLAGS) $< -o $@
$(OBJDIR)/S4k/convert.o: S4/convert.c
    $(CC) -c $(CFLAGS) $(CPPFLAGS) $< -o $@
$(OBJDIR)/S4k/Eigensystems.o: S4/RNP/Eigensystems.cpp
    $(CXX) -c $(CXXFLAGS) $(CPPFLAGS) $< -o $@

#### Lua Frontend

$(OBJDIR)/S4k/main_lua.o: S4/main_lua.c objdir
    $(CC) -c $(CFLAGS) $(CPPFLAGS) $(LUA_INC) $< -o $@
$(OBJDIR)/S4: $(OBJDIR)/S4k/main_lua.o $(OBJDIR)/$(S4_LIBNAME)
    $(CXX) $(CFLAGS) $(CPPFLAGS) $< -o $@ -L$(OBJDIR) -lS4 $(LA_LIBS)         
$(LUA_LIB)

$(OBJDIR)/S4k/main_lua_mpi.o: S4/main_lua.c objdir
    $(CC) -c -DHAVE_MPI $(CFLAGS) $(CPPFLAGS) $(LUA_INC) $(MPI_INC) $< -o $@
$(OBJDIR)/S4mpi: $(OBJDIR)/S4k/main_lua_mpi.o $(OBJDIR)/$(S4_LIBNAME)
    $(CXX) $(CFLAGS) $(CPPFLAGS) $< -o $@ -L$(OBJDIR) -lS4 $(LA_LIBS)         
$(LUA_LIB) $(MPI_LIB)



modules: \
    $(OBJDIR)/RCWA.$(SHLIB_EXT) \
    $(OBJDIR)/FunctionSampler1D.$(SHLIB_EXT) \
    $(OBJDIR)/FunctionSampler2D.$(SHLIB_EXT)

$(OBJDIR)/RCWA.$(SHLIB_EXT):
     $(CC) $(LUA_INC) -O3 $(SHLIB_FLAGS) -fpic S4/main_lua.c -o $@$(LUA_MODULE_LIB) -L$(OBJDIR) -lS4 $(LA_LIBS) -lstdc++
$(OBJDIR)/FunctionSampler1D.$(SHLIB_EXT): modules/function_sampler_1d.c modules/function_sampler_1d.h modules/lua_function_sampler_1d.c
    $(CC) -c $(OPTFLAGS) -fpic -Wall -I. modules/function_sampler_1d.c -o 
$(OBJDIR)/modules/function_sampler_1d.o
    $(CC) $(OPTFLAGS) $(SHLIB_FLAGS) -fpic -Wall $(LUA_INC) -o $@     
$(OBJDIR)/modules/function_sampler_1d.o modules/lua_function_sampler_1d.c $(LUA_MODULE_LIB) $(OBJDIR)/FunctionSampler2D.$(SHLIB_EXT): modules/function_sampler_2d.c modules/function_sampler_2d.h modules/lua_function_sampler_2d.c
    $(CC) -c $(OPTFLAGS) -fpic -Wall -I. modules/function_sampler_2d.c -o 
 $(OBJDIR)/modules/function_sampler_2d.o
     $(CC) -c -O2 -fpic -Wall -I. modules/predicates.c -o 
     $(OBJDIR)/modules/mod_predicates.o
    $(CC) $(OPTFLAGS) $(SHLIB_FLAGS) -fpic -Wall $(LUA_INC) -o $@ 
     $(OBJDIR)/modules/function_sampler_2d.o 
 $(OBJDIR)/modules/mod_predicates.o modules/lua_function_sampler_2d.c $(LUA_MODULE_LIB)

#### Python extension

S4_pyext: objdir $(OBJDIR)/libS4.a
     echo "$(LIBS)" > $(OBJDIR)/tmp.txt
     sh gensetup.py.sh $(OBJDIR) $(OBJDIR)/$(S4_LIBNAME)
     python setup.py build

clean:
     rm -rf $(OBJDIR)

#### S4v2 extension
$(OBJDIR)/S4v2.$(SHLIB_EXT): $(OBJDIR)/$(S4_LIBNAME) S4/ext_lua.c
    $(CC) $(SHLIB_FLAGS) $(LUA_INC) S4/ext_lua.c -o $@ $(LUA_MODULE_LIB) -L$(OBJDIR) -lS4 $(LA_LIBS) -lstdc++
$(OBJDIR)/libS4_lua.a: $(OBJDIR)/$(S4_LIBNAME)
    $(CC) -c $(LUA_INC) S4/ext_lua.c -o $(OBJDIR)/ext_lua.o
    $(AR) crvs $@ $(OBJDIR)/ext_lua.o

If there's anything you could point out in the code to help avoid any future problems I'd be grateful.

Upvotes: 0

Views: 830

Answers (1)

MadScientist
MadScientist

Reputation: 100856

The problem is not related to the content of your makefile.

The problem is that you don't have the g++ program installed on your Windows system or, if you do, make cannot find it. That error means that it couldn't invoke the program you asked to be invoked in your recipe (g++ in this case).

Upvotes: 0

Related Questions