Subversion Repositories Kolibri OS

Rev

Rev 4253 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 4253 Rev 4273
Line 287... Line 287...
287
# Each item is of the form :.
287
# Each item is of the form :.
288
# Spaces should be represented as |.
288
# Spaces should be represented as |.
289
OTHER_FILES:=settings/autorun.dat:SETTINGS/AUTORUN.DAT \
289
OTHER_FILES:=settings/autorun.dat:SETTINGS/AUTORUN.DAT \
290
 default.skn:DEFAULT.SKN \
290
 default.skn:DEFAULT.SKN \
291
 graph:GRAPH \
291
 graph:GRAPH \
292
 ../common/hdread:HDREAD \
-
 
293
 settings/icon.ini:SETTINGS/ICON.INI \
292
 settings/icon.ini:SETTINGS/ICON.INI \
294
 ../common/iconstrp.png:ICONSTRP.PNG index_htm:INDEX.HTM \
293
 ../common/iconstrp.png:ICONSTRP.PNG index_htm:INDEX.HTM \
295
 kernel.mnt:KERNEL.MNT \
294
 kernel.mnt:KERNEL.MNT \
296
 ../common/kerpack:KERPACK \
295
 ../common/kerpack:KERPACK \
297
 settings/keymap.key:SETTINGS/KEYMAP.KEY \
296
 settings/keymap.key:SETTINGS/KEYMAP.KEY \
Line 336... Line 335...
336
 ../common/network/users.ini:NETWORK/USERS.INI \
335
 ../common/network/users.ini:NETWORK/USERS.INI \
337
#end of list
336
#end of list
Line 338... Line 337...
338
 
337
 
339
# Generate skins list understandable by gnu make
338
# Generate skins list understandable by gnu make
340
Makefile.skins: $(REPOSITORY)/skins/authors.txt $(REPOSITORY)/data/generate_makefile_skins.sh
339
Makefile.skins: $(REPOSITORY)/skins/authors.txt $(REPOSITORY)/data/generate_makefile_skins.sh
341
	cut -f1 $< | $(SHELL) $(REPOSITORY)/data/generate_makefile_skins.sh > $@
340
        cut -f1 $< | $(SHELL) $(REPOSITORY)/data/generate_makefile_skins.sh > $@
Line 342... Line 341...
342
include Makefile.skins
341
include Makefile.skins
343
 
342
 
344
# Extra targets for LiveCD image in the syntax of mkisofs
343
# Extra targets for LiveCD image in the syntax of mkisofs
Line 450... Line 449...
450
# The first goal: floppy image.
449
# The first goal: floppy image.
451
$(BUILD_DIR)/kolibri.img: $(BUILD_DIR)/.dir \
450
$(BUILD_DIR)/kolibri.img: $(BUILD_DIR)/.dir \
452
 Makefile \
451
 Makefile \
453
 $(BUILD_DIR)/boot_fat12.bin \
452
 $(BUILD_DIR)/boot_fat12.bin \
454
 $(targets)
453
 $(targets)
455
	str=`date -u +"[auto-build %d %b %Y %R, r$(REV)]"`; \
454
        str=`date -u +"[auto-build %d %b %Y %R, r$(REV)]"`; \
456
	echo -n $$str|dd of=kernel.mnt bs=1 seek=`expr 279 - length "$$str"` conv=notrunc 2>/dev/null
455
        echo -n $$str|dd of=kernel.mnt bs=1 seek=`expr 279 - length "$$str"` conv=notrunc 2>/dev/null
457
	dd if=/dev/zero of=$(BUILD_DIR)/kolibri.img count=2880 bs=512 2>&1
456
        dd if=/dev/zero of=$(BUILD_DIR)/kolibri.img count=2880 bs=512 2>&1
458
	mformat -f 1440 -i $(BUILD_DIR)/kolibri.img ::
457
        mformat -f 1440 -i $(BUILD_DIR)/kolibri.img ::
459
	dd if=$(BUILD_DIR)/boot_fat12.bin of=$(BUILD_DIR)/kolibri.img count=1 bs=512 conv=notrunc 2>&1
458
        dd if=$(BUILD_DIR)/boot_fat12.bin of=$(BUILD_DIR)/kolibri.img count=1 bs=512 conv=notrunc 2>&1
460
	mmd -i $(BUILD_DIR)/kolibri.img ::3D
459
        mmd -i $(BUILD_DIR)/kolibri.img ::3D
461
	mmd -i $(BUILD_DIR)/kolibri.img ::DEMOS
460
        mmd -i $(BUILD_DIR)/kolibri.img ::DEMOS
462
	mmd -i $(BUILD_DIR)/kolibri.img ::DEVELOP
461
        mmd -i $(BUILD_DIR)/kolibri.img ::DEVELOP
463
	mmd -i $(BUILD_DIR)/kolibri.img ::DEVELOP/INFO
462
        mmd -i $(BUILD_DIR)/kolibri.img ::DEVELOP/INFO
464
	mmd -i $(BUILD_DIR)/kolibri.img ::DRIVERS
463
        mmd -i $(BUILD_DIR)/kolibri.img ::DRIVERS
465
	mmd -i $(BUILD_DIR)/kolibri.img ::File\ Managers
464
        mmd -i $(BUILD_DIR)/kolibri.img ::File\ Managers
466
	mmd -i $(BUILD_DIR)/kolibri.img ::FONTS
465
        mmd -i $(BUILD_DIR)/kolibri.img ::FONTS
467
	mmd -i $(BUILD_DIR)/kolibri.img ::GAMES
466
        mmd -i $(BUILD_DIR)/kolibri.img ::GAMES
468
	mmd -i $(BUILD_DIR)/kolibri.img ::LIB
467
        mmd -i $(BUILD_DIR)/kolibri.img ::LIB
469
	mmd -i $(BUILD_DIR)/kolibri.img ::MEDIA
468
        mmd -i $(BUILD_DIR)/kolibri.img ::MEDIA
470
	mmd -i $(BUILD_DIR)/kolibri.img ::MEDIA/ImgF
469
        mmd -i $(BUILD_DIR)/kolibri.img ::MEDIA/ImgF
471
	mmd -i $(BUILD_DIR)/kolibri.img ::NETWORK
470
        mmd -i $(BUILD_DIR)/kolibri.img ::NETWORK
472
	mmd -i $(BUILD_DIR)/kolibri.img ::SETTINGS
471
        mmd -i $(BUILD_DIR)/kolibri.img ::SETTINGS
473
	$(mcopy_all_items)
472
        $(mcopy_all_items)
Line 474... Line 473...
474
 
473
 
475
# The second goal: LiveCD image.
474
# The second goal: LiveCD image.
476
$(BUILD_DIR)/kolibri.iso: $(BUILD_DIR)/kolibri.img $(mkisofs_extra_targets)
475
$(BUILD_DIR)/kolibri.iso: $(BUILD_DIR)/kolibri.img $(mkisofs_extra_targets)
477
	mkisofs -U -J -pad -b kolibri.img -c boot.catalog -hide-joliet boot.catalog -graft-points \
476
        mkisofs -U -J -pad -b kolibri.img -c boot.catalog -hide-joliet boot.catalog -graft-points \
478
	-A "KolibriOS AutoBuilder" -p "CleverMouse" -publisher "KolibriOS Team" -V "KolibriOS r$(REV)" -sysid "KOLIBRI" \
477
        -A "KolibriOS AutoBuilder" -p "CleverMouse" -publisher "KolibriOS Team" -V "KolibriOS r$(REV)" -sysid "KOLIBRI" \
Line 479... Line 478...
479
	-iso-level 3 -o $(BUILD_DIR)/kolibri.iso $(BUILD_DIR)/kolibri.img $(call respace,$(MKISOFS_EXTRA)) 2>&1
478
        -iso-level 3 -o $(BUILD_DIR)/kolibri.iso $(BUILD_DIR)/kolibri.img $(call respace,$(MKISOFS_EXTRA)) 2>&1
480
 
479
 
481
# Special targets to modify behaviour of make.
480
# Special targets to modify behaviour of make.
Line 482... Line 481...
482
.DELETE_ON_ERROR:
481
.DELETE_ON_ERROR:
483
.SUFFIXES: # delete all predefined rules
482
.SUFFIXES: # delete all predefined rules
484
 
483
 
Line 485... Line 484...
485
# The floppy bootsector.
484
# The floppy bootsector.
486
$(BUILD_DIR)/boot_fat12.bin: $(KERNEL)/bootloader/boot_fat12.asm $(KERNEL)/bootloader/floppy1440.inc
485
$(BUILD_DIR)/boot_fat12.bin: $(KERNEL)/bootloader/boot_fat12.asm $(KERNEL)/bootloader/floppy1440.inc
487
	fasm $(KERNEL)/bootloader/boot_fat12.asm $(BUILD_DIR)/boot_fat12.bin
486
        fasm $(KERNEL)/bootloader/boot_fat12.asm $(BUILD_DIR)/boot_fat12.bin
488
 
487
 
489
$(BUILD_DIR)/.dir 3d/.dir demos/.dir develop/.dir develop/info/.dir drivers/.dir fonts/.dir \
488
$(BUILD_DIR)/.dir 3d/.dir demos/.dir develop/.dir develop/info/.dir drivers/.dir fonts/.dir \
490
 games/.dir lib/.dir media/.dir network/.dir settings/.dir allskins/.dir distr_data/.dir .deps/.dir:
489
 games/.dir lib/.dir media/.dir network/.dir settings/.dir allskins/.dir distr_data/.dir .deps/.dir:
491
	mkdir -p $(dir $@)
490
        mkdir -p $(dir $@)
492
	touch $@
491
        touch $@
Line 493... Line 492...
493
develop/info/.dir: develop/.dir
492
develop/info/.dir: develop/.dir
494
File\ Managers/.dir:
493
File\ Managers/.dir:
Line 495... Line 494...
495
	mkdir -p "File Managers"
494
        mkdir -p "File Managers"
Line 508... Line 507...
508
include Makefile.copy
507
include Makefile.copy
Line 509... Line 508...
509
 
508
 
510
# Special rules for copying sysfuncs.txt - it isn't directly included in the image.
509
# Special rules for copying sysfuncs.txt - it isn't directly included in the image.
511
docpack: $(DOCDIR)SYSFUNCS.TXT
510
docpack: $(DOCDIR)SYSFUNCS.TXT
512
$(DOCDIR)SYSFUNCS.TXT: $(KERNEL)/docs/sysfuncs.txt
511
$(DOCDIR)SYSFUNCS.TXT: $(KERNEL)/docs/sysfuncs.txt
Line 513... Line 512...
513
	cp $(KERNEL)/docs/sysfuncs.txt $(DOCDIR)SYSFUNCS.TXT
512
        cp $(KERNEL)/docs/sysfuncs.txt $(DOCDIR)SYSFUNCS.TXT
514
 
513
 
Line 515... Line 514...
515
# Similar for C--.
514
# Similar for C--.
Line 521... Line 520...
521
# maintain the list of sources and objects by hand.
520
# maintain the list of sources and objects by hand.
522
include Makefile.msvc
521
include Makefile.msvc
Line 523... Line 522...
523
 
522
 
524
# Rules for table
523
# Rules for table
525
table: .obj.table/table.exe
524
table: .obj.table/table.exe
526
	$(msvc_final)
525
        $(msvc_final)
527
TABLE_OBJECTS:=.obj.table/calc.obj .obj.table/func.obj .obj.table/hello.obj \
526
TABLE_OBJECTS:=.obj.table/calc.obj .obj.table/func.obj .obj.table/hello.obj \
528
 .obj.table/KosFile.obj .obj.table/kosSyst.obj .obj.table/math2.obj \
527
 .obj.table/KosFile.obj .obj.table/kosSyst.obj .obj.table/math2.obj \
529
 .obj.table/mcsmemm.obj .obj.table/parser.obj
528
 .obj.table/mcsmemm.obj .obj.table/parser.obj
530
TABLE_H_FILES:=$(wildcard $(PROGS)/other/table/*.h)
529
TABLE_H_FILES:=$(wildcard $(PROGS)/other/table/*.h)
531
.obj.table/table.exe: $(TABLE_OBJECTS)
530
.obj.table/table.exe: $(TABLE_OBJECTS)
532
	$(msvc_link)
531
        $(msvc_link)
533
$(TABLE_OBJECTS): .obj.table/%.obj: $(PROGS)/other/table/%.cpp $(TABLE_H_FILES) Makefile.msvc | .obj.table
532
$(TABLE_OBJECTS): .obj.table/%.obj: $(PROGS)/other/table/%.cpp $(TABLE_H_FILES) Makefile.msvc | .obj.table
534
	$(msvc_compile)
533
        $(msvc_compile)
535
.obj.table:
534
.obj.table:
Line 536... Line 535...
536
	mkdir -p .obj.table
535
        mkdir -p .obj.table
537
 
536
 
538
# Rules for graph
537
# Rules for graph
539
graph: .obj.graph/graph.exe
538
graph: .obj.graph/graph.exe
540
	$(msvc_final)
539
        $(msvc_final)
541
GRAPH_CPP_OBJECTS:=.obj.graph/func.obj .obj.graph/hello.obj .obj.graph/kolibri.obj \
540
GRAPH_CPP_OBJECTS:=.obj.graph/func.obj .obj.graph/hello.obj .obj.graph/kolibri.obj \
542
 .obj.graph/KosFile.obj .obj.graph/kosSyst.obj .obj.graph/math2.obj \
541
 .obj.graph/KosFile.obj .obj.graph/kosSyst.obj .obj.graph/math2.obj \
543
 .obj.graph/mcsmemm.obj .obj.graph/parser.obj
542
 .obj.graph/mcsmemm.obj .obj.graph/parser.obj
544
GRAPH_C_OBJECTS:=.obj.graph/string.obj
543
GRAPH_C_OBJECTS:=.obj.graph/string.obj
545
GRAPH_H_FILES:=$(wildcard $(PROGS)/other/graph/*.h)
544
GRAPH_H_FILES:=$(wildcard $(PROGS)/other/graph/*.h)
546
GRAPH_FASM_OBJECTS:=.obj.graph/memcpy.obj .obj.graph/memset.obj
545
GRAPH_FASM_OBJECTS:=.obj.graph/memcpy.obj .obj.graph/memset.obj
547
.obj.graph/graph.exe: $(GRAPH_CPP_OBJECTS) $(GRAPH_C_OBJECTS) $(GRAPH_FASM_OBJECTS)
546
.obj.graph/graph.exe: $(GRAPH_CPP_OBJECTS) $(GRAPH_C_OBJECTS) $(GRAPH_FASM_OBJECTS)
548
	$(msvc_link)
547
        $(msvc_link)
549
$(GRAPH_CPP_OBJECTS): .obj.graph/%.obj: $(PROGS)/other/graph/%.cpp $(GRAPH_H_FILES) Makefile.msvc | .obj.graph
548
$(GRAPH_CPP_OBJECTS): .obj.graph/%.obj: $(PROGS)/other/graph/%.cpp $(GRAPH_H_FILES) Makefile.msvc | .obj.graph
550
	$(msvc_compile)
549
        $(msvc_compile)
551
$(GRAPH_C_OBJECTS): .obj.graph/%.obj: $(PROGS)/other/graph/%.c $(GRAPH_H_FILES) Makefile.msvc | .obj.graph
550
$(GRAPH_C_OBJECTS): .obj.graph/%.obj: $(PROGS)/other/graph/%.c $(GRAPH_H_FILES) Makefile.msvc | .obj.graph
552
	$(msvc_compile)
551
        $(msvc_compile)
553
$(GRAPH_FASM_OBJECTS): .obj.graph/%.obj: $(PROGS)/other/graph/%.asm Makefile.msvc | .obj.graph
552
$(GRAPH_FASM_OBJECTS): .obj.graph/%.obj: $(PROGS)/other/graph/%.asm Makefile.msvc | .obj.graph
554
	fasm $< $@
553
        fasm $< $@
Line 555... Line 554...
555
.obj.graph:
554
.obj.graph:
556
	mkdir -p .obj.graph
555
        mkdir -p .obj.graph
557
 
556
 
558
# Rules for kosilka
557
# Rules for kosilka
559
games/kosilka: .obj.kosilka/kosilka.exe
558
games/kosilka: .obj.kosilka/kosilka.exe
560
	$(msvc_final)
559
        $(msvc_final)
561
KOSILKA_OBJECTS:=.obj.kosilka/kosilka.obj .obj.kosilka/KosFile.obj .obj.kosilka/kosSyst.obj .obj.kosilka/mcsmemm.obj
560
KOSILKA_OBJECTS:=.obj.kosilka/kosilka.obj .obj.kosilka/KosFile.obj .obj.kosilka/kosSyst.obj .obj.kosilka/mcsmemm.obj
562
KOSILKA_H_FILES:=$(PROGS)/games/kosilka/*.h
561
KOSILKA_H_FILES:=$(PROGS)/games/kosilka/*.h
563
.obj.kosilka/kosilka.exe: $(KOSILKA_OBJECTS)
562
.obj.kosilka/kosilka.exe: $(KOSILKA_OBJECTS)
564
	$(msvc_link)
563
        $(msvc_link)
565
$(KOSILKA_OBJECTS): .obj.kosilka/%.obj: $(PROGS)/games/kosilka/%.cpp $(KOSILKA_H_FILES) Makefile.msvc | .obj.kosilka
564
$(KOSILKA_OBJECTS): .obj.kosilka/%.obj: $(PROGS)/games/kosilka/%.cpp $(KOSILKA_H_FILES) Makefile.msvc | .obj.kosilka
Line 566... Line 565...
566
	$(msvc_compile)
565
        $(msvc_compile)
Line 567... Line 566...
567
.obj.kosilka:
566
.obj.kosilka:
568
	mkdir -p .obj.kosilka
567
        mkdir -p .obj.kosilka
569
 
568
 
570
include Makefile.gcc
569
include Makefile.gcc
571
 
570
 
572
# Rules for shell
571
# Rules for shell
573
shell: .obj.shell/start.o .obj.shell/shell.o .obj.shell/kolibri.o .obj.shell/stdlib.o .obj.shell/string.o .obj.shell/ctype.o \
572
shell: .obj.shell/start.o .obj.shell/shell.o .obj.shell/kolibri.o .obj.shell/stdlib.o .obj.shell/string.o .obj.shell/ctype.o \
574
 $(PROGS)/system/shell/kolibri.ld
573
 $(PROGS)/system/shell/kolibri.ld
575
	$(call gcc_link,$(PROGS)/system/shell/kolibri.ld)
574
        $(call gcc_link,$(PROGS)/system/shell/kolibri.ld)
576
.obj.shell/shell.o: $(PROGS)/system/shell/shell.c \
575
.obj.shell/shell.o: $(PROGS)/system/shell/shell.c \
577
 $(PROGS)/system/shell/all.h \
576
 $(PROGS)/system/shell/all.h \
578
 $(PROGS)/system/shell/system/*.h \
577
 $(PROGS)/system/shell/system/*.h \
579
 $(PROGS)/system/shell/cmd/*.c \
578
 $(PROGS)/system/shell/cmd/*.c \
580
 $(PROGS)/system/shell/modules/*.c \
579
 $(PROGS)/system/shell/modules/*.c \
581
 $(PROGS)/system/shell/locale/rus/globals.h \
580
 $(PROGS)/system/shell/locale/rus/globals.h \
582
 Makefile.gcc | .obj.shell
581
 Makefile.gcc | .obj.shell
583
	$(gcc_compile)
582
        $(gcc_compile)
584
.obj.shell/kolibri.o .obj.shell/stdlib.o .obj.shell/string.o .obj.shell/ctype.o: .obj.shell/%.o: \
583
.obj.shell/kolibri.o .obj.shell/stdlib.o .obj.shell/string.o .obj.shell/ctype.o: .obj.shell/%.o: \
585
 $(PROGS)/system/shell/system/%.c $(PROGS)/system/shell/system/*.h \
584
 $(PROGS)/system/shell/system/%.c $(PROGS)/system/shell/system/*.h \
586
 Makefile.gcc | .obj.shell
585
 Makefile.gcc | .obj.shell
587
	$(gcc_compile)
586
        $(gcc_compile)
Line 588... Line 587...
588
	win32-gcc -c -Os -o $@ $<
587
        win32-gcc -c -Os -o $@ $<
589
.obj.shell/start.o: $(PROGS)/system/shell/start.asm | .obj.shell
588
.obj.shell/start.o: $(PROGS)/system/shell/start.asm | .obj.shell
590
	fasm $< $@
589
        fasm $< $@
591
.obj.shell:
590
.obj.shell:
592
	mkdir -p .obj.shell
591
        mkdir -p .obj.shell
593
 
592
 
594
# Rules for e80
593
# Rules for e80
595
E80DIR=$(PROGS)/emulator/e80/trunk
594
E80DIR=$(PROGS)/emulator/e80/trunk
596
e80: .obj.e80/start.o .obj.e80/kolibri.o .obj.e80/stdlib.o .obj.e80/string.o .obj.e80/z80.o .obj.e80/e80.o
595
e80: .obj.e80/start.o .obj.e80/kolibri.o .obj.e80/stdlib.o .obj.e80/string.o .obj.e80/z80.o .obj.e80/e80.o
597
	$(call gcc_link,$(E80DIR)/kolibri.ld)
596
        $(call gcc_link,$(E80DIR)/kolibri.ld)
598
.obj.e80/e80.o: $(E80DIR)/e80.c $(E80DIR)/48.h \
597
.obj.e80/e80.o: $(E80DIR)/e80.c $(E80DIR)/48.h \
599
 $(E80DIR)/system/*.h $(E80DIR)/system/msgbox.c \
598
 $(E80DIR)/system/*.h $(E80DIR)/system/msgbox.c \
600
 $(E80DIR)/z80/z80.h Makefile.gcc | .obj.e80
599
 $(E80DIR)/z80/z80.h Makefile.gcc | .obj.e80
601
	$(gcc_compile)
600
        $(gcc_compile)
602
.obj.e80/kolibri.o .obj.e80/stdlib.o .obj.e80/string.o: .obj.e80/%.o: \
601
.obj.e80/kolibri.o .obj.e80/stdlib.o .obj.e80/string.o: .obj.e80/%.o: \
603
 $(E80DIR)/system/%.c $(E80DIR)/system/*.h Makefile.gcc | .obj.e80
602
 $(E80DIR)/system/%.c $(E80DIR)/system/*.h Makefile.gcc | .obj.e80
604
	$(gcc_compile)
603
        $(gcc_compile)
Line 605... Line 604...
605
.obj.e80/z80.o: $(E80DIR)/z80/z80.c $(E80DIR)/z80/*
604
.obj.e80/z80.o: $(E80DIR)/z80/z80.c $(E80DIR)/z80/*
606
	$(gcc_compile)
605
        $(gcc_compile)
607
.obj.e80/start.o: $(E80DIR)/asm_code.asm | .obj.e80
606
.obj.e80/start.o: $(E80DIR)/asm_code.asm | .obj.e80
608
	fasm $< $@
607
        fasm $< $@
609
.obj.e80:
608
.obj.e80:
610
	mkdir -p .obj.e80
609
        mkdir -p .obj.e80
611
 
610
 
612
# Rules for sdk/sound, used by media/ac97snd
611
# Rules for sdk/sound, used by media/ac97snd
613
SOUNDDIR=$(PROGS)/develop/sdk/trunk/sound/src
612
SOUNDDIR=$(PROGS)/develop/sdk/trunk/sound/src
614
SOUND_OBJECTS:=$(patsubst $(SOUNDDIR)/%.asm,.sdk/%.obj,$(wildcard $(SOUNDDIR)/*.asm))
613
SOUND_OBJECTS:=$(patsubst $(SOUNDDIR)/%.asm,.sdk/%.obj,$(wildcard $(SOUNDDIR)/*.asm))
615
SOUND_INC_FILES:=$(wildcard $(SOUNDDIR)/*.inc)
614
SOUND_INC_FILES:=$(wildcard $(SOUNDDIR)/*.inc)
616
.sdk/sound.lib: $(SOUND_OBJECTS)
615
.sdk/sound.lib: $(SOUND_OBJECTS)
617
	win32-link /lib /out:$@ $^
616
        win32-link /lib /out:$@ $^
618
$(SOUND_OBJECTS): .sdk/%.obj: $(SOUNDDIR)/%.asm $(SOUND_INC_FILES) | .sdk
617
$(SOUND_OBJECTS): .sdk/%.obj: $(SOUNDDIR)/%.asm $(SOUND_INC_FILES) | .sdk
619
	fasm $< $@
618
        fasm $< $@
620
.sdk:
619
.sdk:
621
	mkdir -p .sdk
620
        mkdir -p .sdk
622
# Rules for media/ac97snd
621
# Rules for media/ac97snd
623
AC97DIR=$(PROGS)/media/ac97snd
622
AC97DIR=$(PROGS)/media/ac97snd
624
media/ac97snd: .obj.ac97snd/ac97snd.exe
623
media/ac97snd: .obj.ac97snd/ac97snd.exe
625
	$(msvc_final)
624
        $(msvc_final)
626
.obj.ac97snd/ac97snd.exe: .obj.ac97snd/ac97wav.obj .obj.ac97snd/crt.obj .obj.ac97snd/k_lib.obj \
625
.obj.ac97snd/ac97snd.exe: .obj.ac97snd/ac97wav.obj .obj.ac97snd/crt.obj .obj.ac97snd/k_lib.obj \
627
	.obj.ac97snd/mpg.lib .sdk/sound.lib .obj.ac97snd/ufmod.obj
626
        .obj.ac97snd/mpg.lib .sdk/sound.lib .obj.ac97snd/ufmod.obj
628
	$(msvc_link)
627
        $(msvc_link)
629
.obj.ac97snd/ac97wav.obj: $(AC97DIR)/ac97snd/ac97wav.c \
628
.obj.ac97snd/ac97wav.obj: $(AC97DIR)/ac97snd/ac97wav.c \
630
	$(AC97DIR)/kolibri.h $(AC97DIR)/ac97snd/ac97wav.h $(AC97DIR)/mpg/mpg123.h \
629
        $(AC97DIR)/kolibri.h $(AC97DIR)/ac97snd/ac97wav.h $(AC97DIR)/mpg/mpg123.h \
631
	$(AC97DIR)/sound.h $(AC97DIR)/ufmod-codec.h Makefile.msvc | .obj.ac97snd
630
        $(AC97DIR)/sound.h $(AC97DIR)/ufmod-codec.h Makefile.msvc | .obj.ac97snd
632
	$(msvc_compile)
631
        $(msvc_compile)
633
.obj.ac97snd/crt.obj: $(AC97DIR)/ac97snd/crt.c $(AC97DIR)/ac97snd/crt.h Makefile.msvc | .obj.ac97snd
632
.obj.ac97snd/crt.obj: $(AC97DIR)/ac97snd/crt.c $(AC97DIR)/ac97snd/crt.h Makefile.msvc | .obj.ac97snd
634
	$(msvc_compile)
633
        $(msvc_compile)
635
.obj.ac97snd/k_lib.obj: $(AC97DIR)/ac97snd/k_lib.asm $(AC97DIR)/ac97snd/proc32.inc | .obj.ac97snd
634
.obj.ac97snd/k_lib.obj: $(AC97DIR)/ac97snd/k_lib.asm $(AC97DIR)/ac97snd/proc32.inc | .obj.ac97snd
636
	fasm $< $@
635
        fasm $< $@
637
.obj.ac97snd/ufmod.obj: $(AC97DIR)/ufmod-config.asm | .obj.ac97snd
636
.obj.ac97snd/ufmod.obj: $(AC97DIR)/ufmod-config.asm | .obj.ac97snd
638
	fasm $< $@ -s .deps/ac97snd-ufmod.fas
637
        fasm $< $@ -s .deps/ac97snd-ufmod.fas
639
	prepsrc .deps/ac97snd-ufmod.fas /dev/stdout | \
638
        prepsrc .deps/ac97snd-ufmod.fas /dev/stdout | \
640
	perl -n -e 's|\\|/|g;s| |\\ |g;push @a,$$1 if/^;include\\ \x27(.*?)\x27/;' \
639
        perl -n -e 's|\\|/|g;s| |\\ |g;push @a,$$1 if/^;include\\ \x27(.*?)\x27/;' \
641
	-e 'END{$$a=join " \\\n ",@a;print "$@: $$a\n$$a:\n"}' > .deps/ac97snd-ufmod.Po
640
        -e 'END{$$a=join " \\\n ",@a;print "$@: $$a\n$$a:\n"}' > .deps/ac97snd-ufmod.Po
642
-include .deps/ac97snd-ufmod.Po
641
-include .deps/ac97snd-ufmod.Po
643
AC97SND_MPG_C_FILES:=$(wildcard $(AC97DIR)/mpg/*.c)
642
AC97SND_MPG_C_FILES:=$(wildcard $(AC97DIR)/mpg/*.c)
644
AC97SND_MPG_H_FILES:=$(wildcard $(AC97DIR)/mpg/*.h)
643
AC97SND_MPG_H_FILES:=$(wildcard $(AC97DIR)/mpg/*.h)
645
AC97SND_MPG_C_OBJECTS:=$(patsubst $(AC97DIR)/mpg/%.c,.obj.ac97snd/%.o,$(AC97SND_MPG_C_FILES))
644
AC97SND_MPG_C_OBJECTS:=$(patsubst $(AC97DIR)/mpg/%.c,.obj.ac97snd/%.o,$(AC97SND_MPG_C_FILES))
646
.obj.ac97snd/mpg.lib: $(AC97SND_MPG_C_OBJECTS) .obj.ac97snd/pow.obj
645
.obj.ac97snd/mpg.lib: $(AC97SND_MPG_C_OBJECTS) .obj.ac97snd/pow.obj
Line 647... Line 646...
647
	win32-link /lib /ltcg /out:$@ $^
646
        win32-link /lib /ltcg /out:$@ $^
648
$(AC97SND_MPG_C_OBJECTS): .obj.ac97snd/%.o: $(AC97DIR)/mpg/%.c $(AC97SND_MPG_H_FILES) Makefile.msvc | .obj.ac97snd
647
$(AC97SND_MPG_C_OBJECTS): .obj.ac97snd/%.o: $(AC97DIR)/mpg/%.c $(AC97SND_MPG_H_FILES) Makefile.msvc | .obj.ac97snd
649
	$(msvc_compile)
648
        $(msvc_compile)
650
.obj.ac97snd/pow.obj: $(AC97DIR)/mpg/pow.asm $(AC97DIR)/mpg/proc32.inc | .obj.ac97snd
649
.obj.ac97snd/pow.obj: $(AC97DIR)/mpg/pow.asm $(AC97DIR)/mpg/proc32.inc | .obj.ac97snd
651
	fasm $< $@
650
        fasm $< $@
652
.obj.ac97snd:
651
.obj.ac97snd:
653
	mkdir -p .obj.ac97snd
652
        mkdir -p .obj.ac97snd
654
 
653
 
655
# Rules for atikms.dll
654
# Rules for atikms.dll
656
# Use Makefile from $(REPOSITORY)/drivers/ddk and $(REPOSITORY)/drivers/video/drm/radeon
655
# Use Makefile from $(REPOSITORY)/drivers/ddk and $(REPOSITORY)/drivers/video/drm/radeon
657
# However, dependencies must be duplicated - I don't know how to avoid this
656
# However, dependencies must be duplicated - I don't know how to avoid this
658
# without need to rebuild kolibri.img at every iteration...
657
# without need to rebuild kolibri.img at every iteration...
659
# Note that we are going to write in the directory shared
658
# Note that we are going to write in the directory shared
660
# between all Makefiles, so we need locked operations.
659
# between all Makefiles, so we need locked operations.
661
drivers/atikms.dll: $(REPOSITORY)/drivers/video/drm/radeon/atikms.dll drivers/.dir
660
drivers/atikms.dll: $(REPOSITORY)/drivers/video/drm/radeon/atikms.dll drivers/.dir
662
	kpack --nologo $< $@
661
        kpack --nologo $< $@
663
$(REPOSITORY)/drivers/video/drm/radeon/atikms.dll: $(REPOSITORY)/drivers/video/drm/radeon/Makefile.lto
662
$(REPOSITORY)/drivers/video/drm/radeon/atikms.dll: $(REPOSITORY)/drivers/video/drm/radeon/Makefile.lto
664
	flock $(REPOSITORY)/drivers/video/drm/radeon/.lock \
663
        flock $(REPOSITORY)/drivers/video/drm/radeon/.lock \
665
	$(MAKE) CC=win32-gcc45 AS=win32-as LD=win32-ld AR=win32-ar FASM=fasm -C $(REPOSITORY)/drivers/video/drm/radeon -f Makefile.lto
664
        $(MAKE) CC=win32-gcc45 AS=win32-as LD=win32-ld AR=win32-ar FASM=fasm -C $(REPOSITORY)/drivers/video/drm/radeon -f Makefile.lto
666
$(REPOSITORY)/drivers/ddk/libddk.a: $(REPOSITORY)/drivers/ddk/Makefile
665
$(REPOSITORY)/drivers/ddk/libddk.a: $(REPOSITORY)/drivers/ddk/Makefile
667
	flock $(REPOSITORY)/drivers/ddk/.lock \
666
        flock $(REPOSITORY)/drivers/ddk/.lock \
668
	$(MAKE) CC=win32-gcc45 AS=win32-as LD=win32-ld AR=win32-ar FASM=fasm -C $(REPOSITORY)/drivers/ddk libddk.a
667
        $(MAKE) CC=win32-gcc45 AS=win32-as LD=win32-ld AR=win32-ar FASM=fasm -C $(REPOSITORY)/drivers/ddk libddk.a