# =================================================================== # Makefile for assembly programming # =================================================================== NASM_FLAGS= -f elf -g -F dwarf CXX_FLAGS= -Wall -m32 -ggdb OPT_FLAGS= -m32 -ggdb -O3 -mavx2 -ftree-vectorize -funroll-loops .PRECIOUS: obj/%.o .SECONDARY: obj/%.o all: setup_directories \ bin/hello_world.exe bin/hello_world_nasm.exe setup_directories: mkdir -p bin obj # rules bin/%.exe: obj/%.o gcc -o $@ $< $(OPT_FLAGS) obj/%.o: %.asm nasm $(NASM_FLAGS) $< -o $@ obj/%.o: %.c gcc -c -o $@ $< $(OPT_FLAGS) $(CXX_FLAGS) obj/%.o: %.cpp g++ -c -o $@ $< $(OPT_FLAGS) $(CXX_FLAGS) # clean clean: rm -rf bin/*.exe obj/*.o