summaryrefslogtreecommitdiffstats
path: root/mdk-stage1/Makefile
diff options
context:
space:
mode:
Diffstat (limited to 'mdk-stage1/Makefile')
-rw-r--r--mdk-stage1/Makefile217
1 files changed, 66 insertions, 151 deletions
diff --git a/mdk-stage1/Makefile b/mdk-stage1/Makefile
index 9fd254c8b..1d66d22fe 100644
--- a/mdk-stage1/Makefile
+++ b/mdk-stage1/Makefile
@@ -2,11 +2,9 @@
#
# mdk-stage1 - the program that will load second-stage install
#
- # $Id$
+ # Pixel (pixel) (mostly done by Guillaume Cottenceau)
#
- # Pixel (pixel@mandrakesoft.com) (mostly done by Guillaume Cottenceau)
- #
- # Copyright 2000-2004 Mandrakesoft
+ # Copyright 2000-2004 Mandriva
#
# This software may be freely redistributed under the terms of the GNU
# public license.
@@ -14,237 +12,156 @@
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
# Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+
+VERSION=2.62
+PRODUCT=drakx-installer-binaries
+
#
# Portions from Erik Troan (ewt@redhat.com) Copyright 1996 Red Hat Software
#
- #*****************************************************************************
- #
- # Currently:
- #
- # ix86
- # init with minilibc
- # stage1 with dietlibc
- #
- # ppc
- # init with dietlibc
- # stage1 with glibc
- #
- # ia64
- # init with glibc
- # stage1 with glibc
- #
- # x86-64
- # init with minilibc
- # stage1 with dietlibc
- #
- #*****************************************************************************
top_dir = .
include $(top_dir)/Makefile.common
include $(top_dir)/../Makefile.config
-
-
-DEFS = -DDISTRIB_NAME=\"$(DISTRIB_NAME)\" -DDISTRIB_VERSION=\"$(DISTRIB_VERSION)\" -DDISTRIB_DESCR=\"$(DISTRIB_DESCR)\" $(ADDITIONAL_DEFS) -D_FILE_OFFSET_BITS=64
-
-COMPILE = $(CC) $(DEFS) $(CFLAGS)
-
-ifeq (ppc, $(ARCH))
-INIT_HEADERS=init-libc-headers.h
-else
-ifeq (DIETLIBC, $(L))
-INIT_HEADERS=minilibc.h
-else
-INIT_HEADERS=init-libc-headers.h
-endif
+ARCHDIR=$(ARCH)
+ifeq (i386, $(ARCH))
+ARCHDIR=i686
endif
-INIT_DEFS = -DINIT_HEADERS=\"$(INIT_HEADERS)\"
+DEFS = -DDISTRIB_NAME=\"$(DISTRIB_NAME)\" -DDISTRIB_VERSION=\"$(DISTRIB_VERSION)\" -DDISTRIB_TYPE=\"$(DISTRIB_TYPE)\" -DDISTRIB_DESCR=\"$(DISTRIB_DESCR)\" $(ADDITIONAL_DEFS) -D_FILE_OFFSET_BITS=64 -DARCH=\"$(ARCHDIR)\" -DCONFIG_USE_ZLIB
+
+COMPILE = $(CC) $(DEFS) $(CFLAGS) -Wno-error=format-truncation
-ifeq (DIETLIBC, $(L))
-INITSRC = minilibc.c init.c
-INIT_DEFS += -fno-builtin
-else
INITSRC = init.c
-INIT_DEFS += $(GLIBC_INCLUDES)
-endif
-INIT_DEFS_ADD = -DBINARY=\"/sbin/stage1\"
-ifdef MOVE
-INIT_DEFS_ADD_STAGE2 = -DBINARY=\"/usr/bin/runstage2.pl\"
-else
-INIT_DEFS_ADD_STAGE2 = -DBINARY=\"/usr/bin/runinstall2\"
-endif
+STAGE1_DEFS=-DDISABLE_KA
-INITOBJS = $(subst .c,.o,$(INITSRC))
-INITOBJS-STAGE2 = $(subst .c,-STAGE2.o,$(INITSRC))
+INITOBJS = $(INITSRC:.c=.o)
#- frontends
NEWT_FRONTEND_SRC = newt-frontend.c
-NEWT_FRONTEND_LIBS = newt/libnewt.a slang/libslang.a
+NEWT_FRONTEND_LIBS = -lnewt -lslang
STDIO_FRONTEND_SRC = stdio-frontend.c
STDIO_FRONTEND_LIBS =
-STDIO_FRONTEND_LIBS =
-
-FRONTEND_OBJS = $(subst .c,.o,$($(F)_FRONTEND_SRC))
+FRONTEND_OBJS = $($(F)_FRONTEND_SRC:.c=.o)
FRONTEND_LINK = $(FRONTEND_OBJS) $($(F)_FRONTEND_LIBS)
-ifeq (DIETLIBC, $(L))
-INSMOD = insmod-busybox
-else
-INSMOD = insmod-modutils
-endif
-
-STAGE1_OWN_LIBS = $(INSMOD)/libinsmod.a mar/libmar.a bzlib/libbzlib.a
+STAGE1_OWN_LIBS = -lz -lldetect -lkmod -lpci -llzma -lsysfs
-ifeq (DIETLIBC, $(L))
-STAGE1_NETWORK_LIBS = $(top_dir)/dietlibc/bin-$(ARCH)/librpc.a
-else
-STAGE1_NETWORK_LIBS = /usr/$(LIB)/libresolv.a
-endif
-
#- stage1 itself
-STAGE1SRC = stage1.c log.c tools.c modules.c probing.c mount.c automatic.c frontend-common.c lomount.c
+STAGE1SRC = stage1.c log.c utils.c params.c tools.c modules.c probing.c mount.c automatic.c frontend-common.c lomount.c thirdparty.c zlibsupport.c
CDROMSRC = cdrom.c
-DISKSRC = disk.c directory.c
-NETWORKSRC = network.c nfsmount.c dhcp.c url.c dns.c adsl.c directory.c
+DISKSRC = disk.c directory.c partition.c
+NETWORKSRC = network.c dhcp.c url.c dns.c adsl.c directory.c wireless.c
+#KASRC = ka.c
# use sort to remove duplicates
-STAGE1_ALLSRC = $(sort $(STAGE1SRC) $(CDROMSRC) $(DISKSRC) $(NETWORKSRC))
+STAGE1_ALLSRC = $(sort $(STAGE1SRC) $(CDROMSRC) $(DISKSRC) $(NETWORKSRC) $(KASRC))
ALLSRC = $(INITSRC) $(STAGE1_ALLSRC)
-STAGE1OBJS-CDROM = $(subst .c,-CDROM.o,$(STAGE1SRC) $(CDROMSRC))
-
CDROM_DEFS = -DSPAWN_SHELL -DDISABLE_DISK -DDISABLE_NETWORK
STAGE1OBJS-NETWORK = $(subst .c,-NETWORK.o,$(STAGE1SRC) $(NETWORKSRC))
-NETWORK_DEFS = -DSPAWN_SHELL -DDISABLE_CDROM -DDISABLE_DISK
+NETWORK_DEFS = -DSPAWN_SHELL -DDISABLE_CDROM -DDISABLE_DISK -DDISABLE_KA
STAGE1OBJS-NETWORK-STANDALONE = $(subst .c,-NETWORK-STANDALONE.o,$(STAGE1SRC) $(NETWORKSRC))
-NETWORK_STANDALONE_DEFS = -DDISABLE_CDROM -DDISABLE_DISK -DENABLE_NETWORK_STANDALONE
+NETWORK_STANDALONE_DEFS = -DDISABLE_CDROM -DDISABLE_DISK -DENABLE_NETWORK_STANDALONE -DDISABLE_KA
-STAGE1OBJS-FULL = $(subst .c,-FULL.o,$(STAGE1_ALLSRC))
+STAGE1OBJS-FULL = $(STAGE1_ALLSRC:.c=-FULL.o)
-BINS = init init-stage2 stage1-full dhcp-client
+BINS = init stage1 dhcp-client rescue-gui probe-modules
-ifndef MOVE
-ifeq (i386, $(ARCH))
-BINS += stage1-cdrom stage1-network
-endif
-ifeq (x86_64, $(ARCH))
-BINS += stage1-cdrom stage1-network
-endif
-endif
-
-ifeq (i386, $(ARCH))
-DIRS = dietlibc
-endif
-ifeq (ppc, $(ARCH))
-DIRS = dietlibc
-endif
-ifeq (x86_64, $(ARCH))
-DIRS = dietlibc
-endif
-DIRS += mar pci-resource usb-resource bzlib $(INSMOD) slang newt ppp/pppd rp-pppoe/src
-ifeq (i386, $(ARCH))
-DIRS += pcmcia_
-endif
-
-
-ifeq (i386,$(ARCH))
-PCMCIA_LIB = pcmcia_/libpcmcia.a
+OTHERS = pci-ids.h usb-ids.h
+ifneq (,$(filter $(ARCH),i386 x86_64))
+OTHERS += pcmcia-ids.h pcmcia
+PCMCIA_LIB = pcmcia/libpcmcia.a
PCMCIA_DEFS = -DENABLE_PCMCIA
endif
USB_DEFS_GEN = -DENABLE_USB
USB_DEFS = -DENABLE_USB -DDISABLE_PCIADAPTERS
-all: dirs $(BINS)
+all: $(OTHERS) $(BINS)
-dirs:
- @for n in . $(DIRS); do \
- [ "$$n" = "." ] || make -C $$n || exit 1 ;\
- done
+pci-ids.h: /usr/share/ldetect-lst/pcitable.gz update-pci-ids.pl
+ perl update-pci-ids.pl > $@ || { rm -f $@; exit 1; }
-init: $(INITOBJS)
- $(DIET) $(CC) $(LDFLAGS) -o $@ $^
- $(STRIPCMD) $@
+usb-ids.h: /usr/share/ldetect-lst/usbtable.gz update-usb-ids.pl
+ perl update-usb-ids.pl > $@ || rm -f $@
-init-stage2: $(INITOBJS-STAGE2)
- $(DIET) $(CC) $(LDFLAGS) -o $@ $^
- $(STRIPCMD) $@
+pcmcia-ids.h: update-pcmcia-ids.pl
+ perl update-pcmcia-ids.pl > $@ || { rm -f $@; exit 1; }
-stage1-cdrom: $(STAGE1OBJS-CDROM) $(STAGE1_OWN_LIBS) $(FRONTEND_LINK) $(STAGE1_LIBC)
- $(DIET) $(CC) $(LDFLAGS) -o $@ $^
- $(STRIPCMD) $@
+pcmcia/libpcmcia.a:
+ make -j -C pcmcia
+
+probing.c: pci-ids.h
-stage1-network: $(STAGE1OBJS-NETWORK) $(STAGE1_OWN_LIBS) $(STAGE1_NETWORK_LIBS) $(FRONTEND_LINK) $(PCMCIA_LIB) $(STAGE1_LIBC)
- $(DIET) $(CC) $(LDFLAGS) -o $@ $^
+init: $(INITOBJS)
+ $(CC) $(LDFLAGS) -o $@ $^
$(STRIPCMD) $@
-stage1-full: $(STAGE1OBJS-FULL) $(STAGE1_OWN_LIBS) $(STAGE1_NETWORK_LIBS) $(FRONTEND_LINK) bootsplash.o $(PCMCIA_LIB) $(STAGE1_LIBC)
- $(DIET) $(CC) $(LDFLAGS) -o $@ $^
+stage1: $(STAGE1OBJS-FULL) $(STAGE1_OWN_LIBS) $(FRONTEND_LINK) $(PCMCIA_LIB)
+ $(CC) $(LDFLAGS) -o $@ $^
$(STRIPCMD) $@
-dhcp-client: $(STAGE1OBJS-NETWORK-STANDALONE) $(STAGE1_OWN_LIBS) $(STAGE1_NETWORK_LIBS) $(FRONTEND_LINK) $(STAGE1_LIBC)
- $(DIET) $(CC) $(LDFLAGS) -o $@ $^
+dhcp-client: $(STAGE1OBJS-NETWORK-STANDALONE) $(STAGE1_OWN_LIBS) $(FRONTEND_LINK)
+ $(CC) $(LDFLAGS) -o $@ $^
$(STRIPCMD) $@
$(INITOBJS): %.o: %.c
- $(COMPILE) $(INIT_DEFS) $(INIT_DEFS_ADD) -c $<
-
-$(INITOBJS-STAGE2): %-STAGE2.o: %.c
- $(COMPILE) $(INIT_DEFS) $(INIT_DEFS_ADD_STAGE2) -c $< -o $@
-
-$(STAGE1OBJS-CDROM): %-CDROM.o: %.c
- $(DIET) $(COMPILE) $(INCLUDES) $(CDROM_DEFS) -c $< -o $@
+ $(COMPILE) -c $<
$(STAGE1OBJS-NETWORK): %-NETWORK.o: %.c
- $(DIET) $(COMPILE) $(INCLUDES) $(NETWORK_DEFS) $(PCMCIA_DEFS) $(USB_DEFS_GEN) -DENABLE_ADDITIONAL_MODULES -c $< -o $@
+ $(COMPILE) $(INCLUDES) $(NETWORK_DEFS) $(PCMCIA_DEFS) $(USB_DEFS_GEN) -DENABLE_ADDITIONAL_MODULES -c $< -o $@
$(STAGE1OBJS-NETWORK-STANDALONE): %-NETWORK-STANDALONE.o: %.c
- $(DIET) $(COMPILE) $(INCLUDES) $(NETWORK_STANDALONE_DEFS) $(USB_DEFS_GEN) -c $< -o $@
+ $(COMPILE) $(INCLUDES) $(NETWORK_STANDALONE_DEFS) $(USB_DEFS_GEN) -c $< -o $@
$(STAGE1OBJS-FULL): %-FULL.o: %.c
- $(DIET) $(COMPILE) $(INCLUDES) -DSPAWN_SHELL $(USB_DEFS_GEN) $(PCMCIA_DEFS) -DENABLE_BOOTSPLASH -c $< -o $@
+ $(COMPILE) $(INCLUDES) -DSPAWN_SHELL $(USB_DEFS_GEN) $(PCMCIA_DEFS) $(STAGE1_DEFS) -c $< -o $@
.c.o:
- $(DIET) $(COMPILE) $(INCLUDES) -DENABLE_BOOTSPLASH -c $<
+ $(COMPILE) $(INCLUDES) -c $<
-clean:
+clean: localclean
@for n in $(DIRS); do \
(cd $$n; make clean) \
done
- rm -f *.o .depend *.rdz *.img rescue-gui init-move $(BINS)
+localclean:
+ rm -f *.o .depend *.rdz *.img pci-ids.h pcmcia-ids.h usb-ids.h $(BINS)
-tar-mkinitrd_helper: clean
- rm -rf mkinitrd_helper-subdir
- mkdir mkinitrd_helper-subdir
- cd mkinitrd_helper-subdir ; cp -a ../dietlibc ../insmod-busybox ../Makefile.common ../insmod.h ../log.h . ; \
- cp ../Makefile.mkinitrd_helper Makefile
- tar cfj mkinitrd_helper.tar.bz2 mkinitrd_helper-subdir --exclude CVS
- rm -rf mkinitrd_helper-subdir
-rescue-gui: rescue-gui.o frontend-common.o $(FRONTEND_LINK) $(STAGE1_LIBC)
- $(DIET) $(CC) $(LDFLAGS) -o $@ $^
+rescue-gui: rescue-gui.o frontend-common.o params.o utils.o log.o automatic.o $(FRONTEND_LINK)
+ $(CC) $(LDFLAGS) -o $@ $^
$(STRIPCMD) $@
+probe-modules: probe-modules.o probing-FULL.o modules-FULL.o params-FULL.o utils-FULL.o log-FULL.o automatic-FULL.o frontend-common-FULL.o stdio-frontend.o zlibsupport-FULL.o $(STAGE1_OWN_LIBS) $(PCMCIA_LIB)
+ $(CC) $(LDFLAGS) -o $@ $^
+ $(STRIPCMD) $@
+
+dist: tar
+tar:
+ rm -rf $(PRODUCT)*.tar* $(PRODUCT)-$(VERSION)
+ @cd ..; git archive --prefix=$(PRODUCT)-$(VERSION)/ HEAD mdk-stage1 kernel Makefile.config | xz >mdk-stage1/$(PRODUCT)-$(VERSION).tar.xz;
+ $(info $(PRODUCT)-$(VERSION).tar.xz is ready)
.depend:
$(CPP) $(CFLAGS) -M $(ALLSRC) > .depend
@@ -254,8 +171,6 @@ include .depend
endif
-*-CDROM.o: %-CDROM.o: %.o
-
*-NETWORK.o: %-NETWORK.o: %.o
*-FULL.o: %-FULL.o: %.o