Patches by Robin H. Johnson - 2006/05/29 Previously using GCC you had to do make clean between making each of the seperate utilities. This was due to the fact that depending on what compiler defines were passed, the output was different. The following patch makes the output files reflect which utility they are compiled for, so they don't conflict, and no make clean is needed. This patch also adds a top level Makefile to allow quick building of the entire package. Also fixes parallel build issues in compiler/, where the yacc generated data might used before it was ready. diff -Nuar --exclude '*~' acpica-unix-20060512.orig/Makefile acpica-unix-20060512/Makefile --- acpica-unix-20060512.orig/Makefile 1969-12-31 16:00:00.000000000 -0800 +++ acpica-unix-20060512/Makefile 2006-05-29 16:28:55.560238471 -0700 @@ -0,0 +1,31 @@ +PROGS= compiler/iasl tools/acpiexec/acpiexec tools/acpixtract/acpixtract tools/acpisrc/acpisrc +ifndef CFLAGS +CFLAGS= -O2 -g +endif +# warnings always important +CFLAGS += -Wall -Wstrict-prototypes + +all: $(PROGS) + +iasl: compiler +acpiexec: tools/acpiexec +acpixtract: tools/acpixtract +acpisrc: tools/acpisrc + +SUBDIRS = $(dir $(PROGS)) +.PHONY: $(SUBDIRS) all + +compiler: compiler/iasl +tools/acpiexec: tools/acpiexec/acpiexec +tools/acpixtract: tools/acpixtract/acpixtract +tools/acpisrc: tools/acpisrc/acpisrc + + +$(PROGS): + CFLAGS="$(CFLAGS)" $(MAKE) -C $(dir $(@)) + +clean: clean-subdirs +clean-subdirs: + for dir in $(SUBDIRS); do \ + $(MAKE) -C $$dir clean; \ + done diff -Nuar --exclude '*~' acpica-unix-20060512.orig/compiler/Makefile acpica-unix-20060512/compiler/Makefile --- acpica-unix-20060512.orig/compiler/Makefile 2006-05-12 14:13:31.000000000 -0700 +++ acpica-unix-20060512/compiler/Makefile 2006-05-29 16:34:25.050744637 -0700 @@ -87,7 +87,7 @@ ../osunixxf.c NOMAN= YES -CFLAGS+= -Wall -O2 -Wstrict-prototypes -D_LINUX -DACPI_ASL_COMPILER -I../include +CFLAGS+= -D_LINUX -DACPI_ASL_COMPILER -I../include #YACC= yacc YACC= bison @@ -101,14 +101,22 @@ #CFLAGS+= -D_USE_BERKELEY_YACC #.endif -aslmain : $(patsubst %.c,%.o, $(SRCS)) - $(CC) $(LDFLAGS) $(patsubst %.c,%.o, $(SRCS)) \ - $(LOADLIBES) $(LDLIBS) -o iasl +OBJNAME = iasl +OBJS= $(patsubst %.c,%.$(OBJNAME).o, $(SRCS)) +%.$(OBJNAME).o: %.c + $(COMPILE.c) $(OUTPUT_OPTION) $< + +$(PROG) : $(OBJS) + $(CC) $(LDFLAGS) $(OBJS) \ + $(LOADLIBES) $(LDLIBS) -o $(PROG) CLEANFILES= y.output y.tab.c y.tab.h aslcompiler.y.h \ - aslcompilerparse.c aslcompilerlex.c iasl + aslcompilerparse.c aslcompilerlex.c $(PROG) -aslcompilerparse.c: aslcompiler.y +# force the YACC work to be done before any sources +# as they all depend on it. +$(SRCS): aslcompiler.y.h +aslcompiler.y.h: aslcompiler.y ${YACC} ${YFLAGS} aslcompiler.y cp y.tab.c aslcompilerparse.c cp y.tab.h aslcompiler.y.h @@ -117,5 +125,5 @@ ${LEX} ${LFLAGS} -PAslCompiler -oaslcompilerlex.c aslcompiler.l clean : - rm -f $(CLEANFILES) $(patsubst %.c,%.o, $(SRCS)) + rm -f $(CLEANFILES) $(OBJS) diff -Nuar --exclude '*~' acpica-unix-20060512.orig/tools/acpiexec/Makefile acpica-unix-20060512/tools/acpiexec/Makefile --- acpica-unix-20060512.orig/tools/acpiexec/Makefile 2006-05-12 14:13:43.000000000 -0700 +++ acpica-unix-20060512/tools/acpiexec/Makefile 2006-05-29 16:33:43.551484557 -0700 @@ -131,14 +131,19 @@ ../../osunixxf.c -CFLAGS+= -Wall -g -D_LINUX -DNDEBUG -D_CONSOLE -DACPI_EXEC_APP -D_MULTI_THREADED -Wstrict-prototypes -I../../include +CFLAGS+= -D_LINUX -DNDEBUG -D_CONSOLE -DACPI_EXEC_APP -D_MULTI_THREADED -I../../include +OBJNAME = acpiexec +OBJS= $(patsubst %.c,%.$(OBJNAME).o, $(SRCS)) -acpiexec : $(patsubst %.c,%.o, $(SRCS)) - $(CC) $(LDFLAGS) $(patsubst %.c,%.o, $(SRCS)) -o $(PROG) +%.$(OBJNAME).o: %.c + $(COMPILE.c) $(OUTPUT_OPTION) $< + +$(PROG): $(OBJS) + $(CC) $(LDFLAGS) $(OBJS) -o $(PROG) CLEANFILES= $(PROG) clean : - rm -f $(CLEANFILES) $(patsubst %.c,%.o, $(SRCS)) + rm -f $(CLEANFILES) $(OBJS) diff -Nuar --exclude '*~' acpica-unix-20060512.orig/tools/acpisrc/Makefile acpica-unix-20060512/tools/acpisrc/Makefile --- acpica-unix-20060512.orig/tools/acpisrc/Makefile 2006-05-12 14:13:44.000000000 -0700 +++ acpica-unix-20060512/tools/acpisrc/Makefile 2006-05-29 16:33:03.300322581 -0700 @@ -4,14 +4,19 @@ SRCS= ascase.c asconvrt.c asfile.c asmain.c asremove.c astable.c \ asutils.c osunixdir.c ../../common/getopt.c -CFLAGS+= -Wall -O2 -D_LINUX -DACPI_APPLICATION -Wstrict-prototypes -I../../include +CFLAGS+= -D_LINUX -DACPI_APPLICATION -I../../include +OBJNAME = acpi_application +OBJS= $(patsubst %.c,%.$(OBJNAME).o, $(SRCS)) -aslmain : $(patsubst %.c,%.o, $(SRCS)) - $(CC) $(LDFLAGS) $(patsubst %.c,%.o, $(SRCS)) -o $(PROG) +%.$(OBJNAME).o: %.c + $(COMPILE.c) $(OUTPUT_OPTION) $< + +$(PROG) : $(OBJS) + $(CC) $(LDFLAGS) $(OBJS) -o $(PROG) CLEANFILES= $(PROG) clean : - rm -f $(CLEANFILES) $(patsubst %.c,%.o, $(SRCS)) + rm -f $(CLEANFILES) $(OBJS) diff -Nuar --exclude '*~' acpica-unix-20060512.orig/tools/acpixtract/Makefile acpica-unix-20060512/tools/acpixtract/Makefile --- acpica-unix-20060512.orig/tools/acpixtract/Makefile 2006-05-12 14:13:44.000000000 -0700 +++ acpica-unix-20060512/tools/acpixtract/Makefile 2006-05-29 16:32:50.047281484 -0700 @@ -3,14 +3,19 @@ PROG= acpixtract SRCS= acpixtract.c -CFLAGS+= -Wall -O2 -D_LINUX -DACPI_APPLICATION -Wstrict-prototypes -I../../include +CFLAGS+= -D_LINUX -DACPI_APPLICATION -I../../include +OBJNAME = acpi_application +OBJS= $(patsubst %.c,%.$(OBJNAME).o, $(SRCS)) -acpixtract : $(patsubst %.c,%.o, $(SRCS)) - $(CC) $(LDFLAGS) $(patsubst %.c,%.o, $(SRCS)) -o $(PROG) +%.$(OBJNAME).o: %.c + $(COMPILE.c) $(OUTPUT_OPTION) $< + +$(PROG) : $(OBJS) + $(CC) $(LDFLAGS) $(OBJS) -o $(PROG) CLEANFILES= $(PROG) clean : - rm -f $(CLEANFILES) $(patsubst %.c,%.o, $(SRCS)) + rm -f $(CLEANFILES) $(OBJS)